حل مشکل Cannot modify header information

یکی از مشکلات و هشدارهایی (warning) که خیلی ها در php با آن مواجه هستند Warning معروف زیر است :

Warning: Cannot modify header information – headers already sent by (output started at /…………….) in ……….php on line ….

این مشکل اکثرا زمانی رخ می دهد که یک فایل PHP با یونیکد UTF-8  دارای کارکتر های BOM باشد. اما BOM چیست و آیا در یک ویرایشگر ساده قابل نمایش است؟ جهت حل مشکل Cannot modify header information چه کاری باید انجام داد؟

BOM یا Byte Order Mark ترکیبی است از چند نویسه‌ی ویژه که قرارگیری آن در ابتدای یک فایل متنی، نوع کدگذاری نویسه‌های موجود در آن فایل را مشخص می‌کند. BOM بخشی از متن فایل به حساب نمی‌آید و وجود آن تنها برای رفع ابهام از نوع و شیوه‌ی کدگذاری نویسه‌های یک فایلی متنی ضروری است.
با توجه به اینکه سیستم UTF-8 برای رفع مشکل سازگاری یونی‌کد با سیستم ASCII توسعه یافته است، در بیشتر مواقع از درج BOM مخصوص به UTF-8 در ابتدای فایل‌ها خودداری می‌شود. زیرا این علامت می‌تواند باعث ایجاد سردرگمی برای ویرایشگرها و کامپایلرهایی شود که آن را نمی‌شناسند.
عبارت‌های UTF-8 Without BOM، UTF-8 w/o BOM یا به طور ضمنی UTF-8 که در ویرایشگرهای متنی به نمایش درمی‌آیند، نشان‌دهنده‌ی عدم وجود BOM در ابتدای فایل UTF-8 هستند. (منبع)

Bom چیست

Bom چیست

برای حل مشکل فوق در فایل های UTF-8 باید BOM را حذف کرد؛که در اینجا دو روش پیشنهاد می شود؛

به خواندن ادامه دهید

منابع اختصاصی هاست

Dedicated resources

Dedicated resources

در سروییس های هاستینگ معمول منابع کابران اشتراکی می باشد بدین معنی که یک کاربر (وب سایت) می تواند با افزایش مصرف CPU  یا RAM باعث ایجاد کندی سرعت در دیگر وب سایت های روی سرور شود؛ همچنین بحث امنیت نیز یکی از مباحث مهم در بین فضای اختصاص داده شده به وب سایت ها می باشد؛

در سنترال هاستینگ شما دارای منابع اختصاصی هاست هستید؛ اما این منابع اختصاصی به چه معناست؟
بسیاری از مدیران وب سایت ها جهت رفع معایب هاست های اشتراکی که در بالا ذکر شد اقدام به تهیه VPS یا سرور مجازی جهت میزبانی وب سایت خود می کنند. ( سرور مجازی چیست؟ )

به خواندن ادامه دهید

هفت گام برای انتخاب یک هاست مناسب

سرویس دهندگان هاستینگ زیادی وجود دارند که سرویس‌های هاست را به صورت چندین پلن با ویژگی‌های زیاد ارایه می‌دهند. این تنوع انتخاب گاه سبب می‌شود انتخاب هاست کار دشواری به نظر برسد. چه قصد داشته باشید اولین هاست‌تان را بخرید و چه به دنبال تعویض هاست خود باشید ۷ گام ساده را برای انتخاب هاست مناسب باید بردارید.

۱-پلتفورم/سیستم عامل:

اولین و مهم‌ترین گام در انتخاب هاست وب تعیین پلتفورم مورد استفاده‌ی وب سرور است. معمولاً انتخاب بین سیستم‌های لینوکس/یونیکس و ویندوز است. انتخاب شما تا حد زیادی بر اساس وب‌سایت‌تان و تکنولوژی‌های استفاده شده در طراحی آن و مورد استفاده‌ی آن است. معمولاً وب‌سایت‌هایی که با استفاده از محصولات مایکروسافت طراحی شده‌اند باید از سرورهای ویندوز استفاده کنند. برای تکنولوژی‌های منبع باز باید از سرور لینوکس یا سرور ویندوزی که این قابلیت‌ها روی آن ایجاد شده‌اند استفاده کنید.

۲-ویژگی‌ها/امکانات:

پس از انتخاب پلتفرم باید ویژگی‌هایی را که از هاست‌تان انتظار دارید تعیین کنید. برای این گام وقت بگذارید، زیرا لیست قابلیت‌هایی که شرکت‌های هاستینگ ارایه می‌دهند روز به روز طولانی‌تر می‌شود و اگرچه ممکن است برخی بسته‌های هاست در ظاهر به هم شبیه باشند نگاه دقیق‌تر به این ویژگی‌ها ممکن است نشان دهد که تفاوت‌ها آن‌قدر هم که فکر می‌کنید کم نیست.

 

هفت گام برای انتخاب یک هاست مناسب

هفت گام برای انتخاب یک هاست مناسب

تنها خود شما می‌توانید مطمئن باشید چه قابلیت‌هایی را لازم دارید اما مهم‌ترین چیزهایی که باید به آن‌ها توجه کنید عبارتند از:

به خواندن ادامه دهید

هاست رایگان

شاید برای شما پیش آمده باشد که به دنبال یک هاست رایگان برای تست و راه اندازی آزمایشی وب سایت خود نیاز پیدا کرده باشید,چون معمولا هاست های رایگان کیفیت خوبی ندارند برای کار دائمی شاید مناسب نباشند اما در این پست چند سایت مطرح هاستینگ رایگان ایرانی را معرفی می کنیم که شاید برای ساپورت یک سایت معمولی به صورت دائمی نیز کافی باشند!

یو هاستینگ

یوهاستینگ یک وبسایتی خدماتی میباشد که در تاریخ ۲۲تاریخ  بهمن ۱۳۸۹ با هدف ارائه خدمات میزبانی و طراحی وب ایجاد گردید که در مدت زمانی یکساله در زمستان ۱۳۹۰ توانست در بخش رای گیری مردمی چهارمین جشنواره وب ایران به عنوان برترین شرکت طراحی هاستینگ برگزیده شود.

این سرویس علاوه بر هاستیگ رایگان هاستینگ ویژه فروشی نیز دارد. مشخصات هاستینگ رایگان :۲۰ گیگ فضای دیسک و ۲۰۰ گیگ پهنای باند ماهیانه

http://www.youhosting.ir

free-hosting1

به خواندن ادامه دهید

کدهای وضعیت HTTP و معنی خطاهای سرور

هنگامی که در بستر پروتکل HTTP یا (Hypertext Transfer Protocol) در وب در حال گشت و گذار و مرور صفحات مختلف هستیم، با هر آدرس url ای که از طریق مرورگر خود از سرور سایت ها ی  مختلف درخواست می کنیم، کدهایی در پس زمینه بین واسط کاربری ما (مرورگر) و سرور رد و بدل می شوند که به آنها در اصطلاح کدهای وضعیت HTTP یا (HTTP response status codes) می گویند، این کدها توسط کنسرسیوم ها و بنیاد های جهانی استاندارد سازی وب از جمله IETF یا (Internet Engineering Task Force) و W3C یا (World Wide Web Consortium) تعریف و سازمان دهی شده اند و امروزه تقریبا سرور یا مرورگری وجود ندارد که از اصول آنها پیروی نکند،  کدهای وضعیت  HTTP چه به لحاظ فنی و چه به لحاظ کاربری، کاربردهای فراوانی دارند و لذا آشنایی با جزئیات و مفاهیم آنها می تواند به میزان زیادی به توسعه دانش و اطلاعات عمومی وب، کمک کند.

کدهای وضعیت HTTP را چگونه بررسی کنیم؟

http header

http header

برای مشاهده کدهای وضعیت HTTP، می توانید از قابلیت های مرورگرها (مخصوصا مرورگرهای جدید) برای توسعه دهندگان وب (web developers) استفاده کنید، معمولا در مرورگرهایی مثل فایر فاکس، گوگل کروم، اپرا و… قسمتی تحت عنوان ابزارهای توسعه دهندگان (developers tools) یا عناوینی شبیه آن وجود دارد که تمام فعل و انفعالات واسط کاربری (user agent) و سرور را نشان می دهد.

تفاوت HTTP 1/0 و HTTP 1/1

قبل از اینکه به بررسی کدهای وضعیت HTTP بپردازیم، بد نیست اشاره ای داشته باشیم به نسخه های مختلف آن، اعدادی که در مقابل تیتر بالا مشاهده می کنید (۱/۰ و ۱/۱) در واقع نسخه های مختلف پروتکل HTTP هستند که توسط گروه HTTP-WG که خود زیر مجموعه IETF یا (Internet Engineering Task Force) است، توسعه یافته، HTTP 1/0 نسخه ابتدایی و قدیمی این پروتکل است که در ابتدا مورد استفاده قرار می گرفت و به دلیل نقایص و نقاط ضعفی که وجود داشت، به تدریج توسعه داده شد و استاندارد HTTP 1/1 شکل گرفت، در بستر نسخه جدید پروتکل HTTP کدهای وضعیت بیشتری تعریف شده و امروزه بیشتر سرور ها و مرورگرها از آن استفاده می کنند.

کدهای سری ۱۰۰، مربوط به اطلاعات (Informational)

اولین سری از کدهای HTTP، با عدد ۱۰۰ شروع می شود که در مورد نقل و انتقال بسته های اطلاعات مثل ارسال و دریافت فایل، کاربرد دارند و حالت موقت پاسخ سرور را نشان می دهند، به فرض وقتی از متد POST در فرم های وب استفاده می کنیم، دریافت کد ۱۰۰ به معنی این است که سرور درخواست ما را پذیرفته و فرایند پردازش اطلاعات ادامه دارد، االبته بدون ارسال کد ۱۰۰ نیز این فرایند ادامه می یابد لذا ارسال آن از طرف سرور ضروری نیست و حتی در مرورگرهایی که از نسخه HTTP/1.0 استفاده می کنند، این کد قابل فهم و پردازش نیست.

کد ۱۰۰، ادامه ارسال (Continue)

کد ۱۰۰ به معنی این است که سرور درخواست مرورگر را دریافت کرده است و مرورگر می تواند ادامه اطلاعات را ارسال نماید، این کد مخصوصا در مواقعی که حجم زیادی از داده ها به فرض از طریق فرم های وب و متد POST ارسال می شود، کاربرد دارد و مرورگر با ارسال هدر Expect: 100-continue وضعیت سرور را جهت آمادگی ادامه ارسال اطلاعات بررسی می کند، اگر در جواب کد ۱۰۰ را دریافت کند، ادامه اطلاعات را ارسال می کند، در غیر این صورت کد ۴۱۷ Expectation Failed دریافت می شود.

کد ۱۰۱، تعویض پروتکل ها (Switching Protocols)

کد ۱۰۱ به معنی درخواست مرورگر از سرور جهت تعویض پروتکل نقل و انتقال داده است، در صورتی که سرور این تعویض پروتکل را مفید یا ضروری ارزیابی کند، از درخواست مرورگر پیروی خواهد کرد، به فرض تعویض پروتکل HTTP 1/0 به نسخه HTTP 1/1 می تواند مفید باشد، یا استفاده از پروتکل های real-time و همزمان (synchronous) نیز به همین صورت است، مثلا در برنامه هایی که از آژاکس (Ajax) استفاده می کنند، این کد می تواند کاربرد داشته باشد.

کد ۱۰۲، در حال پردازش (Processing)

از آنجایی که درخواست های مرورگر از سرور ممکن است شامل انجام کارهای مختلفی باشد که هر کدام نیاز به پردازش جداگانه دارند، سرور با ارسال کد ۱۰۲ به مرورگر می گوید که عملیات درخواستی، دریافت شده و در حال پردازش است، به این صورت مرورگر در انتظار پاسخ کامل سرور بوده و  از قطع ارتباط به دلیل به پایان رسیدن حداکثر زمان (time out)، جلوگیری می شود.

کدهای سری ۲۰۰، درخواست موفق (Success)

کدهای سری ۲۰۰، به این معنی است که درخواست ارسالی واسط کاربری (که می تواند مرورگر یا ابزار دیگری باشد)، با موفقیت دریافت، موافقت، پردازش و پاسخ داده شده است، کدهای سری ۲۰۰ معمولا به معنی بی نقص بودن درخواست و عملکرد صحیح سرور است.

کد ۲۰۰، پاسخ موفق (OK)

کد استاندارد HTTP در وب، با عدد ۲۰۰ نشان داده می شود، دریافت پاسخ ۲۰۰ از سرور به این معنی است که آدرس درخواستی (در متد GET) یا عملیات مورد نظر (در متد POST) به طور کامل و موفقیت آمیز توسط سرور انجام شده است، در یک ارتباط بدون نقص بین واسط کاربری (user agent) و سرور، کدهای سری ۲۰۰ باید دریافت شوند.

کد ۲۰۱، ساخته شده (Created)

کد HTTP 201 به معنی دریافت موفقیت آمیز درخواست و ساخته شدن یک منبع جدید در سرور است (به فرض ایجاد یک فایل یا صفحه جدید)، ارسال کد ۲۰۱ تنها در صورتی صحیح است که سرور منبع جدید را ساخته باشد، در غیر اینصورت (اگر منبع هنوز ساخته نشده باشد) باید کد ۲۰۲ را ارسال کند.

کد ۲۰۲، موافقت شده (Accepted)

کد ۲۰۲، به این معنی است که با درخواست واسط کاربری موافقت شده، اما پردازش عملیات به طور کامل صورت نگرفته است، به همین دلیل تا پایان پردازش عملیات درخواستی، ممکن است تقاضای کاربر کامل شده یا برعکس، رد شود.

کد ۲۰۳، اطلاعات غیر معتبر (Non-Authoritative Information)

کد ۲۰۳ که از ورژن HTTP 1/1 تعریف شده، به این معنی است که سرور درخواست واسط کاربری را به طور موفقیت آمیز پاسخ داده، ولی اطلاعات ارسالی (در پاسخ سرور) از یک منبع غیر معتبر است (به فرض کپی ازاطلاعاتی است که درستی آن تایید نمی شود)، تنظیم این کد در سرورها معمولا غیر ضروری است و می توان به جای آن کد ۲۰۰ را ارسال کرد.

کد ۲۰۴، پاسخ بدون محتوا (No Content)

کد ۲۰۴ به معنی دریافت و پردازش صحیح درخواست واسط کاربری است، اما پاسخ سرور شامل محتوای خاصی نیست و می تواند به فرض تنها اطلاعات مربوط به، به روز رسانی منبع درخواستی باشد، معمولا دریافت این پاسخ از سرور، بدین معنی است که آدرس درخواستی هیچ گونه تغییری از آخرین درخواست تا لحظه کنونی نداشته است و فایل یا صفحه مربوطه به همان صورت قبلی نشان داده می شود.

کد ۲۰۵، بازنشانی محتوا (Reset Content)

کد ۲۰۵ شباهت زیادی به عملکرد کد ۲۰۴ دارد، یعنی در اینجا نیز هیچ محتوایی از طرف سرور ارسال نمی شود، اما در سمت کاربر، اطلاعات فعلی بازنشانی یا Reset می گردند که این معمولا منجر به ایجاد محتوای خالی می شود، این کد مخصوصا برای پاک کردن اطلاعات فرم های وب می تواند مورد استفاده قرار گیرد.

کد ۲۰۶، محتوای جزئی (Partial Content)

کد ۲۰۶، برای حالت هایی که به فرض از امکاناتی نظیر ادامه دانلود (resume download) استفاده می کنیم، کاربرد دارد، با ارسال این کد توسط سرور، به قسمت خاصی از درخواست واسط کاربری به صورت جزئی پاسخ داده می شود، با این شیوه برنامه هایی که از GNU Wget یا نقل و انتقال داده از سرور پشتیبانی می کنند، قادر خواهند بود حتی پس از قطع ارتباط نیز به ادامه دریافت اطلاعات بپردازند، البته این قابلیت باید توسط سرور نیز پشتیبانی شود.

کدهای سری ۳۰۰، انتقال (Redirection)

کدهای سری ۳۰۰ مربوط به مواردی هستند که پاسخ به درخواست واسط کاربری از سرور، باید با انجام اعمال دیگری (در سمت کاربر) کامل شود، این عملیات معمولا توسط واسط کاربری (مثلا مرورگر) و بدون دخالت کاربر (به صورت خودکار) انجام می شود، به فرض عمل ریدایرکت یا انتقال خودکار از یک آدرس به آدرس دیگر، با ارسال کدهای سری ۳۰۰ انجام می شود، نکته مهم در اینجا این مسئله است که ریدایرکت ها نباید در یک درخواست، بیش از ۵ بار تکرار شوند، در غیر اینصورت در اکثر مرورگر ها، فرض بر حلقه (Loop) بی انتها شده و ارتباط قطع خواهد شد.

کد ۳۰۰، انتخاب چندگانه (Multiple Choices)

کد ۳۰۰ برای مواقعی است که سرور در پاسخ به درخواست واسط کاربری، چند منبع مختلف را پیشنهاد می دهد (مثلا یک فایل با فرمت های مختلف) و انتخاب یک url را به عهده مرورگر کاربر می گذارد، عمل انتخاب نیز معمولا یا به صورت خودکار انجام می شود یا اینکه سرور یکی از url ها را به عنوان پیش فرض برگزیده و همراه پاسخ خود ارسال می کند.

کد ۳۰۱، انتقال همیشگی (Moved Permanently)

کد ۳۰۱ یکی از مهم ترین و حساس ترین کدهای HTTP مخصوصا در علم سئو است، دریافت این کد از طرف سرور، به معنی انتقال همیشگی یک آدرس وب، به آدرسی دیگر است، از این کد مخصوصا هنگامی که در آدرس لینک های سایت، به هر دلیل تغییراتی ایجاد می شود، می توان جهت هدایت ربات های خزنده یا کاربران به لینک اصلی، استفاده کرد.

کد ۳۰۲، پیدا شد (Found)

کد ۳۰۲ به این معنی است که منبع درخواستی یافت شده، اما مرورگر باید موقتا به آدرس دیگری منتقل شود (Moved Temporarily)، این حالت با کد ۳۰۱ متفاوت است،  در اینجا انتقال به صورت موقت انجام شده و آدرس اصلی همچنان معتبر و در دسترس خواهد بود، اما در ریدایرکت ۳۰۱، منظور از انتقال، انتقال همیشگی، حذف آدرس فعلی و جایگزینی آن با آدرس جدید است.

کد ۳۰۳، دیدن منبعی دیگر (See Other)

کد ۳۰۳ نیز مشابه کد ۳۰۲ عمل می کند، تفاوت در اینجا، تاکید روی متد GET است، در کد ۳۰۳ آدرس فعلی و آدرسی که کاربر به آن منتقل می شود، باید از طریق متد GET درخواست شوند که در حالت معمول نیز به اینصورت خواهد بود.

کد ۳۰۴، بدون تغییر (Not Modified)

کد ۳۰۴ مربوط به مواقعی است که مرورگر همراه درخواست خود، تقاضای اطلاعات مربوط به آخرین تغییرات فایل یا منبع را نیز از سرور می نماید، اگر در فایل مورد نظر، از آخرین درخواست تا لحظه فعلی، تغییری صورت نگرفته باشد (با هر تغییر در فایل ها، تاریخ آخرین تغییر در قسمت اطلاعات فایل، ذخیره می شود)، سرور در پاسخ، کد ۳۰۴ Not Modified را ارسال می کند، این کار علاوه بر اینکه باعث صرفه جویی در منابع سرور می شود، در افزایش سرعت پردازش در سمت کاربر نیز نقش بسیار موثری دارد.

کد  ۳۰۵، استفاده از پروکسی (Use Proxy)

کد ۳۰۵، به معنی این است که سرور برای دسترسی به منبع درخواستی باید از یک پروکسی استفاده کند، پروکسی در واقع سرور میانجی بین واسط کاربری و سرور اصلی است، از این رو و به دلایل امنیتی برخی مرورگرها مانند فایرفاکس و اینترنت اکسپلورر، از این قابلیت پشتیبانی نمی کنند.

کد ۳۰۶، تعویض پروکسی (Switch Proxy)

کد ۳۰۶ هم مشابه کد ۳۰۵ است و مربوط به درخواست تغییر پروکسی، این کد در حال حاضر کاربردی ندارد.

کد ۳۰۷، انتقال موقت (Temporary Redirect)

کد ۳۰۷ مربوط به مواقعی است که منبع لینک اصلی، موقتا در آدرسی دیگر قابل دسترسی است، این حالت با ریدایرکت ۳۰۲ و ۳۰۳ فرق دارد، در اینجا انتقال نیاز به تایید کاربر داشته و به صورت خودکار انجام نمی شود، متدهای استفاده شده نیز باید بین لینک اصلی و لینک انتقالی مشترک باشد، بقیه شرایط مشابه کدهای ۳۰۲ و ۳۰۳ است و واسط کاربری باید لینک فعلی را همچنان و در مراجعات بعدی به عنوان لینک اصلی مد نظر قرار دهد.

کدهای سری ۴۰۰، خطای سمت کاربر (Client Error)

کدهای سری ۴۰۰ مربوط به رویداد خطایی از جانب کاربر (سمت کاربر) در ارائه درخواست به سرور است، در پاسخ، سرور معمولا و به طور پیش فرض، به همراه کدهای HTTP عباراتی در توضیح خطای رخ داده ارسال می کند و دائمی یا موقتی بودن مشکل به وجود آمده را نیز تعیین خواهد کرد.

کد ۴۰۰، درخواست بد (Bad Request)

کد ۴۰۰ به دلیل درک نشدن شیوه نگارش (syntax) درخواست واسط کاربری از سرور رخ می دهد، در این حالت مفهوم تقاضای کاربر برای سرور روشن نیست و درخواست قابل پردازش نمی باشد، این خطا ممکن است به دلایل دیگر، از جمله نقص در انتقال داده ها (به فرض به دلیل قطع یا افت سرعت ارتباط) نیز رخ دهد.

کد ۴۰۱، دسترسی نا معتبر (Unauthorized)

کد ۴۰۱ به معنی دسترسی غیر مجاز است، در این حالت منبع درخواستی به طور کامل محدود نشده است، بلکه درخواست کاربر نیاز به تایید مجوزهای دسترسی (به طور معمول نام کاربری و کلمه عبور) دارد، به همین دلیل سرور در پاسخ خود یک فرم از نوع WWW-Authenticate را ارسال کرده و از کاربر می خواهد تا اعتبار خود را اثبات کند.

کد ۴۰۲، نیاز به پرداخت (Payment Required)

کد ۴۰۲ استفاده جاری ندارد و برای مقاصدی در آینده وضع شده است، هدف از تعریف آن مربوط به حساب های کاربری است که نیاز به پرداخت وجه دارند، البته در عمل تا کنون چنین اتفاقی رخ نداده است و از کد ۴۰۲ استفاده چندانی نمی شود.

کد ۴۰۳، دسترسی غیر مجاز (Forbidden)

کد ۴۰۳ مربوط به مواقعی است که کاربر درخواست منبعی را از سرور دارد که دسترسی به آن برای همه کاربران محدود شده است، این حالت با کد ۴۰۱ متفاوت است، در اینجا حتی با ورود نام کاربری و کلمه عبور نیز امکان دسترسی مقدور نخواهد بود، معمولا مدیران سایت ها، دسترسی مستقیم به فولدر ها و نمایش فایل ها به صورت لیست را غیر فعال می کنند، در نتیجه وقتی آدرس یک فولدر را از آن سرور درخواست می کنیم، با خطای ۴۰۳ مواجه خواهیم شد.

کد ۴۰۴، منبع درخواستی پیدا نشد (Not Found)

کد ۴۰۴ در مواقعی رخ می دهد که واسط کاربری تقاضای منبعی (به طور مثال یک فایل یا صفحه) را از سرور دارد که در حال حاضر موجود نبوده یا حذف شده است (و یا ممکن است نام آن تغییر کرده باشد)،  البته احتمال دارد در آینده مجددا آن منبع ایجاد شده و در دسترس قرار گیرد.

کد ۴۰۵، متد غیر مجاز (Method Not Allowed)

کد ۴۰۵ به این معنی است که متد استفاده شده توسط کاربر برای درخواست یک منبع از سرور مجاز نمی باشد، به فرض استفاد ه از متد GET در حالتی که منبع درخواستی نیاز به ارسال منابعی از طریق متد POST دارد، یا استفاده از PUT در نوشتن یک فایل، برای فایل هایی که فقط حالت خواندنی دارند (read-only)، در این حالت، معمولا سرور در پاسخ، متد مجاز را نیز ارسال خواهد کرد.

کد ۴۰۶، غیر قابل قبول (Not Acceptable)

کد ۴۰۶ ممکن است به دلیل وجود کاراکترهای غیر استاندارد در درخواست ارسالی رخ دهد، برخی از سرورها به دلایل امنیتی نیز ممکن است این کد را در پاسخ ارسال کنند، به طور مثال ماژول mod_security در سرورهای Apache از پذیرفتن برخی آدرس های وب (که از نظر امنیت، سرور آنها را مشکوک تشخیص دهد) خودداری کرده و پیام  Not Acceptable دریافت خواهید کرد.

کد ۴۰۷، نیاز به مجوز پروکسی (Proxy Authentication Required)

عملکرد کد ۴۰۷ نیز شبیه کد ۴۰۱ است، با این تفاوت که در اینجا ابتدا کاربر (واسط کاربری) باید از طریق یک پروکسی اعتبار خود را اثبات کند.

کد ۴۰۸، پایان حداکثر زمان درخواست (Request Timeout)

کد ۴۰۸ زمانی رخ می دهد که سرور در انتظار درخواست واسط کاربری است، اما هیچ پاسخی در زمان استاندارد دریافت نمی شود، به این صورت سرور کد ۴۰۸ را ارسال می کند و واسط کاربر می تواند مجددا و در دفعات بعدی درخواست خود را ارسال کند.

کد ۴۰۹، تعارض (Conflict)

کد ۴۰۹ به معنی تداخل یا تعارض درخواست کاربر با عملیاتی دیگر در سرور بر روی منبع مورد نظر است، به طور مثال وقتی دو کاربر به صورت همزمان در حال ویرایش یک فایل هستند و هر دو آن را ذخیره می کنند، ممکن است این خطا رخ دهد که باید به صورت دستی آن را رفع کرد.

کد ۴۱۰، محذوف (Gone)

کد ۴۱۰ به معنی حذف همیشگی منبع درخواستی از سرور است، بر خلاف خطای ۴۰۴، کد ۴۱۰ به واسط کاربری یا موتورهای جستجو می گوید که نباید مجددا آن منبع را درخواست کنند، چرا که برای همیشه حذف شده است، البته در عمل موارد استفاده از این کد خیلی محدود است و تنظیم خطای ۴۰۴ بهتر و اصولی تر است.

کد ۴۱۱، عدم ارسال طول درخواست (Length Required)

کد ۴۱۱ به این معنی است که سرور از پاسخ به درخواست واسط کاربری خودداری می کند، چرا که در درخواست ارسالی اندازه یا طول محتوا (Content-Length) وجود ندارد، در این حالت معمولا واسط کاربری باید در سربرگ های HTTP درخواست خود آن را اضافه کند.

کد ۴۱۲، پیش شرط رد شده(Precondition Failed)

کد ۴۱۲ به معنی این است که در درخواست واسط کاربری مواردی ارسال شده است (به فرض متد استفاده شده) که منبع سرور از آن طریق قابل دسترس نیست و نتیجه بررسی اولیه سرور false شده است.

کد ۴۱۳، درخواست خیلی طولانی (Request Entity Too Large)

کد ۴۱۳ در حالتی رخ می دهد که طول رشته درخواست ارسالی، بیش از حد توان و انتظار سرور است، لذا ارتباط توسط سرور قطع خواهد شد، اما اگر این حالت موقتی باشد، معمولا در پاسخ، سربرگ Retry-After نیز ارسال می شود و واسط کاربری مجددا و در دفعات بعدی می تواند درخواست خود را ارسال کند.

کد ۴۱۴، آدرس وب خیلی طولانی (Request-URI Too Long)

این خطا به معنی بیش از حد طولانی بودن آدرس وب (URI) درخواستی است و سرور قادر به پردازش آن نیست.

کد ۴۱۵، فرمت پشتیبانی نشده (Unsupported Media Type)

کد ۴۱۵ به دلیل ارسال فرمتی به همراه درخواست ارسالی (به فرض آپلود یک فایل یا تصویر) است که از نظر سرور قابل پذیرش نیست و سرور فرمت دیگری را پشتیبانی می کند.

کد ۴۱۶،  حد درخواستی غیر اقناع کننده (Requested Range Not Satisfiable)

این کد به دلیل ارسال درخواست قسمتی از یک منبع (به فرض بخشی از یک فایل) از سرور است، در حالی که آن قسمت وجود ندارد، به طور مثال کاربر قسمتی از یک فایل را درخواست می کند (به فرض در هنگامی که از ادامه دانلود استفاده می شود) که از حداکثر طول قسمت های آن بیشتر است.

کد ۴۱۷، انتظارات رد شده(Expectation Failed)

کد ۴۱۷ به معنی این است که سربرگ های HTTP ارسالی واسط کاربری با انتظارات و موارد مورد نیاز سرور همخوانی ندارد یا سربرگی ارسال نشده است.

کدهای سری ۵۰۰، خطای سمت سرور (Server Error)

کدهای سری ۵۰۰ به معنی نقص داخلی سرور است، با این حال سرور در مجموع سالم بوده و احتمالا به طور موقت در حال انجام به روزرسانی یا تغییراتی است و در ساعات آینده مشکل رفع خواهد شد.

کد ۵۰۰، خطای داخلی سرور (Internal Server Error)

کد ۵۰۰ به معنی وقوع یک خطای داخلی در سرور است و معمولا به دلیل نقص تنظیمات یا انجام به روزرسانی نرم افزاری یا سخت افزاری رخ می دهد، تنظیم این کد در مواقعی که می خواهیم در سایت، تغییراتی اعمال کنیم که باعث از دسترس خارج شدن آن می شود، می تواند مفید باشد.

کد ۵۰۱، غیر مجهز یا تکمیل نشده (Not Implemented)

این خطا بدین معنی است که سرور قادر به پردازش درخواست واسط کاربری  نیست (معمولا به دلیل پشتیبانی نشدن متد ارسالی یا نقص امکانات مورد نیاز).

کد ۵۰۲، خطای دروازه میانجی (Bad Gateway)

کد ۵۰۲ به دلیل عدم دریافت پاسخ از سرورهای بالادست (upstream) است و سرور فعلی به عنوان یک دروازه میانجی عمل می کند، در این حالت معمولا بین سرور اصلی و واسط کاربری، دروازه های میانجی (Gateway) وجود دارند که قادر به تکمیل فرایند ارسال و دریافت پاسخ نیستند، این حالت معمولا با چند بار تلاش مجدد از سمت کاربر رفع خواهد شد.

کد ۵۰۳، سرویس خارج از دسترس (Service Unavailable)

دریافت کد ۵۰۳ به معنی غیر قابل دسترس بودن سرور به دلیل ترافیک زیاد (overload) یا انجام به روزرسانی است، معمولا این حالت موقتی بوده و پس از چند دقیقه یا چند ساعت رفع خواهد شد.

کد ۵۰۴، پایان حداکثر زمان دروازه میانجی (Gateway Timeout)

کد ۵۰۴ نیز بدین معنی است که سرور به عنوان یک دروازه میانجی (Gateway) قادر به دریافت پاسخ از سرورهای بالا دست (upstream) در حداکثر زمان مجاز نیست.

کد ۵۰۵، نسخه HTTP پشتیبانی نمی شود (HTTP Version Not Supported)

کد ۵۰۵ به معنی پشتیبانی نشدن نسخه HTTP پروتکلی است که واسط کاربری از آن استفاده می کند، معمولا سرور دلیل پشتیبانی نکردن از آن نسخه را نیز به همراه سربرگ های پاسخ خود ارسال می کند.
علاوه بر موارد گفته شده که طبق استاندارد RFC 2616 W3C است، کدهای دیگری مربوط به سرورهای مایکروسافت و سایر پروتکل های وب وجود دارد که به جهت کاربردی نبودن از ذکر آنها خودداری کرده ایم.

منبع: وبگو

بر Uptime (آپ تایم) وب سایت خود نظارت کنید

آپتایم چیست؟

آپتایم به معنی مدت زمان در حال اجرا بودن سرور است(به مدت زمانی که سرور بدون اختلال سرویس ارائه می دهد). اگرشما مدیر یک وب سایت هستید احتمالا آپتایم وب سایتتان برای شما مهم است ! چرا که دوست دارید وب سایت شما همیشه برای کاربران در دسترس باشد و به همین دلیل همیشه به دنبال سرویس دهندگانی هستید که بتوانند درصد بالایی از آپتایم را تضمین کنند.

اگر چه خرابی سرورها و مشکلات آنها مانند ارتقا نرم افزاری و یا ارتقا امنیتی سرور اجتناب ناپذیر می باشد اما شرکت ها همواره به دنبال کاهش زمان قطعی هستند. در حال حاضر برخی شرکت ها سرمایه گذاری های بزرگی را در این بخش انجام داده اند تا بتوانند بازدهی و عملکرد سرورها را به صورت ۷/۲۴ تضیمن کنند.

در حال حاضر در تبلیغات سرویس دهنگان هاست مختلف تضمین آپتایم ۹۹% بسیار دیده می شود که شاید در نگاه اول بگویید درصد بالایی است اما آیا می دانستید که همین ۱ درصد تفاوت می تواند به طور متوسط برای هر وبسایت ۱۵ دقیقه در روز عدم دسترسی باشد؟ برای سایت های معتبر و پربازدید همین امر می تواند تأثیر قابل ملاحظه ایی در تجارتشان داشته باشد. برخی از شرکت های وب هاستینگ در تلاش برای ارایه آپتایم ۹۹.۹% هستند که زمان قطعی روزانه در حدود ۲ الی ۳ دقیقه خواهد بود.

چگونه آپتایم وب سایت خود را بررسی کنیم؟

شاید این سوال برای شما هم پیش آمده باشد که چگونه می توانیم آپتایم وب سایت خود را بررسی و مانیتورینگ کنیم و از مدت زمان و تعداد دفعاتی که سایت در دسترس نمی باشد اطلاع یابیم! ما در این مطلب ۳ وب سایت خدمات دهنده در خصوص آپتایم را به شما معرفی می کنیم: به خواندن ادامه دهید