فهرست جامع کدهای وضعیت HTTP
کد وضعیت HTTP پیامی است که توسط سرور در مورد وضعیت درخواست کاربر (کلاینت) صادر می شود. در صورتی که مرورگر شما این کدهای وضعیت را هنگام دسترسی به یک صفحه اینترنتی، نمایش می دهد، به این معنی است که سرور، در هنگام تلاش برای پردازش درخواست، با مشکل مواجه شده است.
انواع مختلفی از کدهای وضعیت HTTP وجود دارند که بر اساس نوع پاسخ سرور به درخواست کاربر دسته بندی شده اند به طوری که آنها را به ابزاری ارزشمند برای عیب یابی تبدیل کرده اند. دانستن معنای هر یک از این وضعیت ها به حفظ عملکرد وب سایت و بهینه سازی برای موتورهای جستجوگر (SEO) کمک می کند.
اگر دوست دارید اطلاعات بیشتری را در مورد کدهای وضعیت HTTP و انواع آنها به دست آورید، این مقاله برای شماست. علاوه بر این ها، ما در این پست، کدهای وضعیت HTTP که بر سئو تاثیر دارند را پوشش خواهیم داد.
فهرست محتوا
- کدهای وضعیت HTTP چیست؟
- انواع کدهای وضعیت HTTP
- 1xx: کد اطلاع رسانی
- 2xx: موفقیت آمیز
- 3xx: ریدایرکت و تغییر مسیر
- 4xx: خطای سمت کاربر
- 5xx: خطای سمت سرور
- کدهای وضعیت HTTP و سئو
- سؤالات متداول در مورد کدهای وضعیت HTTP
کدهای وضعیت HTTP چیست؟
هنگامی که به یک وب سایت دسترسی پیدا می کنید، مرورگر شما درخواستی را برای دریافت محتوای صفحه، به وب سرور ارسال می کند. پس از پردازش درخواست، سرور محتوای درخواستی را به همراه کد وضعیت HTTP به سمت کاربر، ارسال می کند.
کد وضعیت HTTP از سه رقم تشکیل شده است. رقم اول، از یک تا پنج، نوع وضعیت را نشان می دهد. رقم دوم و سوم به کدهای وضعیت اشاره دارند. سازمان جهانی ثبت اعداد اینترنتی (IANA) بیش از 40 کد وضعیت رسمی را به عنوان استاندارد می شناسد.
با وجود اینکه کد وضعیت در هدر HTTP صفحه قرار دارد که به سمت مرورگر از سمت سرور ارسال می شود، اما معمولا مرورگر شما، کد وضعیت HTTP مذکور را به طور پیشفرض نمایش نمیدهد. با این حال، میتوانید از ابزار Inspection Tools تعبیه شده در داخل مرورگر خود یا یک تفتیش کننده هدر HTTP برای مشاهده سرصفحههای HTTP که سرور برمیگرداند استفاده کنید.
کد وضعیت تنها زمانی قابل مشاهده است که سرور نتواند درخواست را به درستی پردازش کند و از نمایش محتوای درخواستی توسط مرورگر عاجز بماند. کد وضعیت بسته به خطا متفاوت خواهد بود.
انواع کدهای وضعیت HTTP
کدهای وضعیت در پاسخ HTTP، به پنج کلاس یا دسته تقسیم می شوند. هر کلاس کد وضعیت نشان دهنده نوع ارتباطی است که بین وب سرور و سرویس گیرنده اتفاق می افتد.
در زیر پنج کلاس کد وضعیت HTTP آورده شده است:
- 1xx (اطلاع رسانی) ‒ سرور درخواست را دریافت کرد و در حال حاضر در حال پردازش آن است.
- 2xx (موفق) ‒ سرور با موفقیت درخواست را دریافت کرده است و پاسخ مورد انتظار را نیز به کاربر ارسال کرد.
- 3xx (ریدایرکت) ‒ فایل یا منبع مورد نظر، به جای دیگری منتقل شده است و سرور به اقدامات بیشتری برای تکمیل درخواست کاربر نیاز دارد.
- 4xx (خطا از سمت کاربر) ‒ سرور نمی تواند درخواست کاربر را به دلیل معتبر نبودن انجام دهد.
- 5xx (خطای از سمت سرور) ‒ سرور به دلیل یک ایراد داخلی، نمی تواند به درخواست معتبر کاربر، پاسخ دهد.
در بخشهای زیر، به تشریح و بررسی این پنج کلاس کد وضعیت HTTP و رایجترین کدهای وضعیت خواهیم پرداخت.
1xx: کدهای اطلاع رسانی
کلاس کد وضعیت 1xx نشان می دهد که سرور هنوز در حال پردازش درخواست است. پیام خطای 1xx، که به صورت موقت صادر می شود، از یک خط وضعیت و فیلدهای اختیاری هدر تشکیل شده است. و با یک خط خالی خاتمه می دهد.
کدهای وضعیت HTTP این کلاس، کاربر را در مورد روند در حال انجام آگاه میکند و از او میخواهد منتظر پاسخ بماند. بنابراین، یک سرور ممکن است در این مدت بیش از یک کد وضعیت ارسال کند.
100: ادامه
این کد وضعیت تأیید می کند که سرور، سرصفحه های درخواست ارسال شده از سوی کاربر را رد نکرده است و از کاربر می خواهد متن پیام مورد نیاز سرور را ارسال کند.
هدف این کد وضعیت این است که تعیین کند آیا سرور مایل به پذیرش درخواست بدون ارسال بدنه درخواست است یا خیر. وجود چنین کدی، فرآیندهای ارسال و درخواست ها را می تواند کارآمدتر کند.
101: پروتکل سوئیچینگ
سرور با درخواست ارسال شده توسط کاربر برای تغییر پروتکل ها برای تحویل بهینه پاسخ، خود را مطابقت داده است. به عنوان مثال، تغییر پروتکل به نسخه جدیدتر HTTP، زمان دانلود و تأخیر سرور را کاهش می دهد.
103: اشاره های زود هنگام
این کد وضعیت نشان می دهد که کاربر برخی از فیلدهای سرصفحه درخواست را قبل از آنکه پیام نهایی HTTP ارسال شود را دریافت می کند. این به نرم افزارهای خدمات دهنده به کاربر اجازه می دهد تا منابع را قبل از آنکه سرور پاسخ کامل را ارسال کند، بارگذاری کند. سرور معمولا در پاسخ نهایی خود، مجددا عمان فیلدهای هدر را همراه با پاسخ کامل، ارسال می کند.
2xx: موفقیت آمیز
کلاس کد وضعیت 2xx تأیید می کند که سرور با موفقیت درخواست را دریافت، درک کرده و پذیرفته است.
200: Ok
این یک کد وضعیت پاسخی استاندارد برای یک درخواست HTTP موفق است. سرور آن را همراه با منابع درخواست شده از سوی کاربر، ارسال می کند و به صفحه وب اجازه می دهد تا به طور عادی کار کند.
اطلاعات بازگردانده شده با کد وضعیت به نوع درخواست انتخاب شده بستگی دارد:
- Get request ‒ حاوی موجودی مربوط به منبع درخواستی است.
- HEAD request ‒ حاوی فیلدهای سرصفحه درخواست مربوط به منبع درخواستی به استثنای بدنه درخواست است.
- POST request ‒ نتیجه یک اقدام را شرح میدهد یا حاوی آن است.
- TRACE request ‒ حاوی پیام درخواستی است که سرور دریافت کرده است.
201: Created
این کد وضعیت تأیید می کند که درخواست با موفقیت انجام شده است و سرور منبع جدیدی ایجاد کرده است که در بدنه پاسخ ارسال می شود.
فیلد سرصفحه Location یا شناسه (URI) منبع تازه ایجاد شده را مشخص می کند. نوع رسانه در قسمت هدر Content-TypeT فرمت شیء ساخته شده را تعیین می کند.
202: Accepted
سرور درخواست را تأیید کرده است اما هنوز فرآیند را شروع یا تکمیل نکرده است. با ارسال این کد پاسخ، سرور می تواند بدون اینکه کاربر را مجبور به حفظ اتصال تا تکمیل فرآیند کند، درخواستی را برای فرآیند دیگری بپذیرد.
203: Non-Authoritative Information (اطلاعات غیرمجاز)
این کد پاسخ فقط هنگام استفاده از سرور پراکسی ظاهر می شود. سرور پروکسی کد وضعیت پاسخ 200 ارسال شده توسط وب سرور مبدا را قبل از ارسال آن به کاربر تغییر می دهد.
204: No Content
این کد وضعیت نشان می دهد که سرور با موفقیت درخواست را پردازش کرده است اما محتوایی را بر نمی گرداند. با اولین خط خالی بعد از فیلدهای هدر، پاسخ خاتمه می یابد تا چیزی به عنوان بدنه درخواست ارسال نشود.
به عنوان مثال، این کد وضعیت ممکن است در یک صفحه وب با عملکرد ذخیره و ادامه استفاده شود. پس از ذخیره موفقیت آمیز تغییرات، مرورگر کاربر، نیازی به رفرش شدن صفحه وب ندارد.
205: Reset Content
مشابه کد وضعیت 204، کد 205 Reset Content نشان می دهد که سرور با موفقیت درخواست را پردازش کرده است اما هیچ محتوایی را بر نمی گرداند. تنها تفاوت این است که سرور از مرورگر کاربر می خواهد محتوای صفحه خود را ریست کند.
206: Partial Content
این کد وضعیت عموما توسط مرورگرهایی که از Accept-Ranges پشتیبانی می کنند استفاده می شود، به این معنی که مرورگر می تواند از دانلود فایل به صورت تکه تکه، پشتیبانی می کند.
این کد وضعیت، نشان می دهد که سرور با موفقیت درخواست را پردازش کرده است اما فقط بخشی از منابع درخواستی را همانطور که در قسمت سرصفحه Range توضیح داده شده، ارسال کرده است.
3xx: ریدایرکت و تغییر مسیر
کلاس کد وضعیت 3xx نشان می دهد که مرورگر کاربر باید اقدامات بیشتری را برای انجام درخواست خود، انجام دهد. دلیل آن این است که منبع درخواستی به مکان دیگری منتقل شده است. که اصطلاحا به آن ریدایرکشن گفته می شود.
به دلیل عملکرد آن، این کلاس کد وضعیت عموما برای فوروارد کردن آدرس های اینترنتی استفاده می شود. در این شرایط مرورگر کاربر باید درخواست دومی را با GET یا HEAD با آدرس اینترنتی جدید منبع، برای سرور ارسال کند. در این حالت، مرورگر کاربر می تواند اقدامات اضافی مورد نیاز را خودش بدون دخالت کاربر انجام دهد.
300: ابهام یا انتخاب چندگانه
این کد وضعیت تغییر مسیر، نشان می دهد که مرورگر کاربر باید یکی از منابع درخواستی موجود را که سرور پاسخ داده است، انتخاب کند. معمولا زمانی ظاهر می شود که چندین پسوند نام فایل یا ابهام در درخواست وجود داشته باشد.
301 به طور دائم منتقل شد
این کد وضعیت معمولا با ریدایرکت یا تغییر مسیرهای دائمی صفحه ظاهر می شود. جابجایی دائمی منبع را به URL دیگری که در سرصفحههای مکان بیان شده است، منتقل میکند.
از آنجایی که جابجایی دائمی است، وقتی خزنده های وب با این کد وضعیت مواجه شوند، موتورهای جستجو تمام ترافیک را از صفحه قدیمی به صفحه جدید هدایت می کنند. به همین دلیل، صاحبان سایت ها معمولا هنگام انتقال یا تغییر دامنه خود یا ادغام دو وب سایت با هم، از این کد وضعیت استفاده می کنند.
302: منبع پیدا شد
مشابه کد وضعیت 301، کد 302 Found کاربر را به URL دیگری هدایت می کند. با این حال، از آنجایی که جابجایی صرفا موقتی است، از مرورگر میخواهد تا درخواستهای آینده را همچنان با استفاده از URL قدیمی پردازش کند.
303: موارد دیگر را ببینید
این کد وضعیت نشان می دهد که کاربر به جای منبعی که به تازگی آپلود شده است، به صفحه دیگری هدایت می شود، که با استفاده از روش درخواست GET قابل بازیابی است. معمولا آدرس جدید، به درخواستهای PUT، POST یا DELETE از طریق HTTP پاسخگو است.
304: منبع تغییری نکرده
سرور به مرورگر می گوید که منبع از زمانی که برای آخرین بار کش شده است تغییر نکرده است. بنابراین، مرورگر می تواند به حافظه پنهان محلی خود برای منبع درخواستی دسترسی داشته باشد و زمان بارگذاری صفحه را کاهش دهد.
305: از پروکسی استفاده کنید
منبع درخواستی فقط از طریق یک سرور پراکسی که در قسمت سرصفحه Location ذکر شده باشد قابل دسترسی است. بنابراین، مرورگر باید به آن پروکسی متصل شود و درخواست را دوباره ارسال کند. فقط سرورهای اصلی مبدا، مجاز به تولید این کد وضعیت هستند.
307 تغییر مسیر موقت
این کد وضعیت تغییر مسیر هدفی مشابه با 302 Found دارد. تنها تفاوت این است که ریدایرکت از طریق 307 متد HTTP استفاده شده برای بازخوانی اطلاعات و متن اصلی پیام را هنگام تغییر مسیر درخواست، تغییر نمی دهد.
وب سایت ها معمولا از ریدایرکت 307 برای ارسال پیام تأیید استفاده می کنند.
308: تغییر مسیر دائمی
308 Permanent Redirect مانند 301 Moved Permanently کار می کند. با این فرق که ریدایرکت 307 متد HTTP و متن اصلی پیام را تغییر نمی دهد.
4xx: خطای سمت کاربر
کلاس کد وضعیت 4xx رویدادهایی را هدف قرار می دهد که در آنها خطای ناشی از سمت سرویس گیرنده مانع از پردازش درخواست توسط سرور می شود. ممکن است مشکل از مرورگر یا خود درخواست کاربر باشد.
400: درخواست بد
اگر این کد خطا را مشاهده کردید، یک خطای سمت سرویس گیرنده وجود دارد که باعث می شود درخواست برای پردازش نامعتبر باشد. برخی از رایجترین دلایل عبارتند از: نحو درخواست ناقص، کوکیهای نامعتبر، و حافظه پنهان DNS نامعتبر.
401: غیر مجاز
سرور نتوانست درخواست را پردازش کند زیرا فاقد اعتبارنامه معتبر احراز هویت بود. پاسخ باید شامل یک فیلد هدر WWW-authenticate باشد که حاوی اطلاعاتی درباره اقداماتی باشد که در صورت اصرار کاربر برای دسترسی به منبع محافظت شده با رمز عبور بتواند دسترسی پیدا کند.
402: پرداخت وجه مورد نیاز است
این کد وضعیت بیان می کند که کاربر برای دسترسی به منبع مورد نیاز خود، هنوز وجهی پرداخت نکرده است. این نشان می دهد که سرور از پردازش درخواست خودداری کرده است زیرا کاربر پرداخت مورد نیاز را انجام نداده است.
از آنجایی که هیچ قانون استانداردی برای استفاده از آن وجود ندارد، بسیاری از وب سایت های فروشگاهی از 402 Payment Required برای ایجاد پاپ آپ ها یا ریدایرکشن های پرداخت استفاده می کنند.
403: ممنوع
403 Forbidden هدفی مشابه با 401 Unauthorized دارد. 403 نشان دهنده امتناع از تأیید درخواست حتی با وجود اعتبار لاگین بودن کاربر است. بنابراین، کاربر نباید درخواست را تکرار کند.
شایعترین دلیل، مجوزهای ناکافی است. برای مثال، کاربری با نقش نویسنده فقط باید سعی کند تا به صفحات ویراستاران دسترسی پیدا کند و نه بخش ادمین سایت.
404: یافت نشد
این کد وضعیت به کاربر اطلاع می دهد که سرور نتوانسته منبع درخواستی را پیدا کند. در هر صورت پاسخ سرور، حاوی اطلاعاتی در مورد اینکه آیا منبع به طور موقت یا دائم از دست رفته است، نیست.
پیام خطا بسته به مرورگر متفاوت است. بسیاری از وب سایت ها مانند نویا سیستم نیز می توانند نمایش چنین ارورهایی را سفارشی کنند تا توضیح مختصری در مورد خطا ارائه دهند.
برخی از رایج ترین دلایل این ارور، عبارتند از تایپ اشتباه URL، مشکلات حافظه پنهان و انتشار ناقص دامنه در شبکه جهانی وب. اخیرا ما مقاله ای را با عنوان صفحه 404 نوشته ایم که به شما آموزش خواهد داد چگونه می توانید یک صفحه 404 سفارشی، برای وب سایت خود بسازید.
405: متد مجاز نیست
سرور مبدا از روش درخواست HTTP پشتیبانی می کند، اما منبع هدف از آن پشتیبانی نمی کند. کد وضعیت همراه با سرصفحه Allow حاوی لیستی از متدهای پشتیبانی شده برای دسترسی به منبع است که می توان یکی را انتخاب کرد.
406: قابل قبول نیست
پاسخ سرور با مقادیر تعریف شده در هدرهای Accept مغایرت دارد. این کد وضعیت به ندرت استفاده می شود زیرا سرورها تمایل دارند منبع را بدون توجه به مقدار هدرهای Accept، به درخواست کننده ارائه کنند.
مشابه کد 405 (Method Not Allowed)، این کد وضعیت معمولا با لیستی از ویژگی های موجود پشتیبانی شده برای انتخاب همراه است.
407: احراز هویت پروکسی مورد نیاز است
این کد وضعیت خطای کلاینت هنگام استفاده از سرور پروکسی ظاهر می شود. این نشان می دهد که کاربر ابتدا باید نام کاربری و رمز سرور پروکسی را ارائه دهد.
این کد وضعیت همراه با فیلد سرصفحه Authenticate-Proxy به کاربر ارسال می شود که حاوی دستورالعملهایی برای مجوز دادن به سرور پراکسی است.
408: Request Timeout
سرور مبدا ممکن است این کد تایم اوت را در زمان هایی ارسال کند که کاربر درخواستی را در مدت زمان معین ارسال نکند و اتصال را استفاده نشده بداند.
از آنجایی که این خطا بیشتر به دلیل کندی اتصالات اینترنتی یا URL های نادرست ایجاد می شود، کاربر می تواند بدون تغییر محتوا درخواست را در زمان دیگری تکرار کند.
409: Conflict
سرور نمی تواند درخواست را به دلیل تضاد با منبع هدف تکمیل کند. این خطا ممکن است به دلیل به روز رسانی همزمان یک فایل توسط چند کاربر یا قدیمی بودن فرمت یا نسخه فایل آپلود شده روی سرور باشد.
410: فایل، اینجا نیست
این کد وضعیت مشابه 404 یافت نشد است. اما تفاوتش با 404 این است که 410 نشان می دهد که منبع به طور دائم از سرور اصلی حذف شده است و هیچ تغییر مسیری یا جایگزینی نیز برای آن وجود ندارد.
411: Length Required
زمانی که مرورگر در درخواست سرصفحه خود، Content-Length مورد نیاز منبع را تعریف نکرده باشد، ممکن است سرور این کد پاسخ را ارسال کند.
412: پیش شرط ها غیر قابل قبول
سرور نمی تواند پیش شرط های فهرست شده در فیلدهای سرصفحه درخواست را برآورده کند. معمولا این کد ارور، با درخواستهای حاوی سرصفحههای If-Unmodified-Since یا If-None-Match رخ میدهد.
413: حجم فایل خیلی بزرگ است
سرور از پردازش درخواست خودداری کرده است زیرا فایل مورد نظر برای پردازش سرور بسیار بزرگ بود. معمولا زمانی اتفاق میافتد که کاربر سعی میکند فایلی را آپلود کند که از حد مجاز سرور بیشتر است.
414: URI خیلی طولانی است
سرور از پردازش درخواست خودداری کرده است زیرا URI درخواست، خیلی طولانی بود. معمولا زمانی اتفاق میافتد که یک کلاینت درخواست POST را به یک درخواست GET تبدیل میکند و در نتیجه آدرس اینترنتی درخواست طولانی می شود، یا آنکه URI به آدرس خودش ریدایرکت شود، یا یک کلاینت از بافرهایی با اندازه ثابت برای حمله به سرور استفاده کند.
415: Media Type پشتیبانی نشده
سرور از Media Type موجود در درخواست کلاینت پشتیبانی نمی کند.
416: Range قابل قبول نیست
سرور نمی تواند بخشی از فایل درخواستی کاربر را برگرداند. ممکن است به این دلیل باشد که حجم فایل، کمتر از محدودههای درخواستی باشد یا فیلد سرصفحه درخواست محدوده، دارای مقادیر نادرستی است.
417: Expectation Failed
سرور نمی تواند الزامات مندرج در قسمت Expect request-header را برآورده کند.
419: انقضای مدت زمان اعتبار
این کد وضعیت غیر استاندارد زمانی رخ می دهد که احراز هویت معتبر قبلی کاربر منقضی شود. این کد وضعیت، به عنوان جایگزینی برای کد وضعیت 401 غیر مجاز عمل می کند.
422: غیرقابل پردازش
سرور نمی تواند درخواست را تکمیل کند زیرا حاوی خطاهای معنایی است. درخواست به دلیل یک متغیر اشتباه، عملگر یا ترتیب عملکرد نادرست با شکست مواجه شده است. در واقع انجام درخواست کاربر از سوی سرور، بی معنی است.
423: قفل شده
سرور نمی تواند به منبع دسترسی پیدا کند زیرا قفل است. این کد خطا بخشی از ویژگی های WebDAV، به ویژه مکانیسم قفل آن است.
424: وابستگی ناموفق
این کد خطا زمانی ظاهر می شود که یک درخواست به دلیل وابستگی به درخواست دیگری که شکست خورده است با شکست مواجه شود. مانند کد وضعیت 423 (Locked)، این نیز بخشی از ویژگی های WebDAV است که متممی بر HTTP است.
425: Unordered Collection
سرور از پردازش درخواستی که قبلا تکرار شده است و ممکن است دوباره تکرار شود، امتناع میکند و مانع از انجام حملات مجدد توسط هکرها میشود.
426 ارتقاء لازم است
کاربر باید به پروتکل بالاتری مهاجرت کند. پاسخ سرور باید همراه با یک فیلد سرصفحه حاوی پیام ارتقاء باشد که پروتکل درخواستی خود را قید کرده باشد.
428: پیش شرط لازم است
سرور مبدا نیاز به شرطی بودن پاسخ دارد، به این معنی که هدر درخواست باید یک پیش شرط داشته باشد. اگر هدر ارسال شده توسط کاربر با وضعیت و شرایط سمت سرور مطابقت نداشته باشد، سرور یک کد وضعیت 412 را پس میفرستد.
429: درخواست های خیلی زیاد
کاربر در یک بازه زمانی خاص درخواست های زیادی ارسال کرده است. سرور ممکن است شامل یک هدر Retry-After باشد که حاوی یک بازه زمانی است که پس از آن کاربر باید درخواست خود را تکرار کند.
431: فیلدهای سرصفحه خیلی بزرگ است
به دلیل بزرگ بودن یک یا چند فیلد هدر HTTP در درخواست کاربر، سرور از پردازش درخواست خودداری می کند. این کد پاسخ به طور کلی فیلدهای هدر مشکل ساز را در متن پیام خود نشان می دهد و به کاربر اجازه می دهد تا مشکل را برطرف کند.
440: Login Timeout
مشتری باید دوباره وارد سیستم شود زیرا جلسه او منقضی شده است.
444: No Response
این کد وضعیت غیر استاندارد فقط در فایلهای گزارش NGINX ظاهر میشود و به سرور دستور میدهد بدون ارسال پاسخ به کاربر، اتصال را قطع کند. معمولا از این کد، برای رد درخواست های مخرب استفاده می شود.
449: Retry With
سرور نمی تواند درخواست را پردازش کند زیرا مشتری اطلاعات مورد نیاز را ارائه نکرده است.
450: دسترسی برای اجرای درخواست کاربر، توسط Windows Parental Controls مسدود شده است
یک کد اکستنشن مایکروسافت در زمانی فعال می شود که Windows Parental Controls دسترسی به یک صفحه وب را مسدود کند.
451: به دلایل قانونی در دسترس نیست
سرور به دلیل محدودیت های قانونی اعمال شده توسط دولت حاکم بر کشور کاربر، نمی تواند به منبع دسترسی پیدا کند.
495: خطای گواهینامه SSL
سرور NGINX نتوانست گواهی SSL کاربر را تأیید کند و آن را نامعتبر تلقی کرد.
496: بدون گواهی نامه
این کد پاسخ NGINX زمانی ظاهر می شود که یک کاربر گواهینامه SSL مورد نیاز را ارائه ندهد.
497: HTTP به HTTPS
این کد پاسخ NGINX مکملی بر کد وضعیت 400 (Bad Request) است. زمانی اتفاق می افتد که یک کاربر درخواست HTTP را از طریق یک پورت HTTPS ارسال کند.
499: کاربر درخواست خود را بست یا لغو کرد
کاربر قبل از دریافت پاسخ از سرور NGINX درخواست خود را بسته است.
5xx: خطای سمت سرور
کدهای وضعیت 5xx، نشان دهنده یک درخواست ناموفق به دلیل خطای سمت سرور است. سرورها معمولا کد وضعیت 5xx را زمانی که نمی توانند پاسخ مناسب تری پیدا کنند ارسال می کنند.
500 خطای داخلی سرور
سرور به دلیل شرایط غیرمنتظره قادر به انجام درخواست نیست.
در وردپرس، یک پلاگین، یک تم یا یک فایل خراب htaccess. ممکن است این خطا را ایجاد کند. سایر دلایل احتمالی عبارتند از محدودیت ناکافی PHP و نسخه های ناسازگار PHP.
501: پیاده سازی نشده
سرور متد درخواست یا عملکرد مورد نیاز برای انجام درخواست را نمی شناسد.
این کد پاسخ نقطه مقابل متد 405 است (مجاز نیست). به این معنی که کد 405 می گوید سرور عملکرد مورد نیاز را تشخیص داده است اما تصمیم گرفته است از آن پشتیبانی نکند. اما در کد 501، سرور اساسا از متد مورد نظر کاربر پشتیبانی نمی کند و شناختی روی آن ندارد.
502: Bad Gateway
سرور که به عنوان پروکسی عمل می کند، نمی تواند درخواست کاربر را برآورده کند زیرا پاسخ نامعتبری از سرور بالادستی دریافت کرده است.
این کد پاسخ ممکن است زمانی رخ دهد که نام دامنه پس از انتقال به یک میزبانی جدید به طور کامل منتشر نشده باشد. در برخی موارد، فایروال ممکن است درخواست را به دلیل پیکربندی نادرست، حمله به سرور مبدا تشخیص داده باشد.
سایر دلایل احتمالی شامل اضافه بار بیش از حد روی سرور اصلی و خطاهای مرورگر به دلیل نسخه های قدیمی مرورگر یا فایل های خراب در حافظه پنهان مرورگر است.
503: سرویس در دسترس نیست
سرور نمی تواند درخواست را رسیدگی کند زیرا منابع آن تمام شده است یا برای تعمیر و نگهداری از کار افتاده است.
معمولا سرورها به دلیل مشکلات موقتی، این کد پاسخ را ارسال می کنند. پاسخ با فیلد Retry-After request-header حاوی زمان تخمینی برای بازیابی وضعیت به حالت نرمال است.
504: Gateway Timeout
سرور پروکسی پاسخی به موقع برای انجام درخواست از سرور بالادستی دریافت نکرده است.
برخی از رایجترین دلایل عبارتند از پیکربندی ناقص فایروال، دامنههای غیرقابل حل، اضافه بار سرور، مشکلات اتصال، محدودیتهای PHP و مشکلات DNS.
505: نسخه HTTP پشتیبانی نمی شود
سرور از نسخه پروتکل HTTP استفاده شده در درخواست کاربر، پشتیبانی نمی کند. استفاده از یک مرورگر قدیمی وب، معمولا این کد پاسخ را فعال می کند.
پاسخ سرور در این شرایط، به طور کلی حاوی اطلاعاتی در مورد پروتکل های پشتیبانی شده توسط سرور است.
506: نوع نیز مذاکره می کند
سرور پروتکل مذاکرات محتوایی شفاف (Transparent Content Negotiation) را برگذار کرده است و از مرورگر کاربر می خواهد یکی از انواع پشتیبانی شده را برای خدمات رسانی به منبع را انتخاب کند.
در برخی موارد، این کد پاسخ، بیانگر یک حلقه بی نهایت است، به این معنی که منبع نوع انتخاب شده، خودش برای شرکت در مذاکرات محتوایی، پیکربندی شده است. در نتیجه، این روند پایان مناسبی ندارد.
507: حافظه ناکافی
این کد پاسخ WebDAV، عدم وجود فضای ذخیره سازی مورد نیاز برای ذخیره را نشان می دهد که باعث می شود از اجرای درخواست کاربر توسط سرور، جلوگیری می شود.
508: حلقه نامحدود شناسایی شد
این کد پاسخ WebDAV، نشان می دهد که سرور هنگام پردازش درخواست کاربر، با یک حلقه بی نهایت مواجه شده است.
نسخه دیگری از پیغام خطای 508 Resource limitated نام دارد. در این حالت، سرور نمی تواند درخواست را انجام دهد زیرا از محدودیت منابع پیاده سازی شده توسط میزبانی وب، فراتر رفته است.
509: Bandwidth Limit Exceeded
این کد پاسخ معمولا در وبسایتهایی که روی یک میزبانی اشتراکی اجرا میشوند ظاهر میشود. این کد وضعیت، نشان می دهد که سرور به دلیل حجم بالای ترافیک سایت، از حد پهنای باند تخصیص داده شده به خود، فراتر رفته است.
510: تمدید نشده
کاربر از هیچ یک از برنامه های افزودنی پشتیبانی شده توسط سرور استفاده نمی کند. این پاسخ سرور به طور کلی شامل تمام اطلاعات مورد نیاز برای حل مشکل اکستنشن های مورد نیاز است.
511: احراز هویت شبکه مورد نیاز است
این پیام خطا با رهگیری پراکسی هایی که دسترسی به شبکه را کنترل می کنند ارسال می شود. قبل از اینکه شبکه بتواند دسترسی بدهد، کاربر باید احراز هویت شود.
معمولا این مشکل، هنگام تلاش برای دسترسی به شبکه های عمومی رخ می دهد. کاربران برای دسترسی باید با شرایط خدمات سرویس دهنده، موافقت کنند.
520: وب سرور یک خطای ناشناخته برگردانده است
این کد پاسخ Cloudflare سیگنال می دهد که سرور مبدا یک پاسخ خالی یا ناشناخته را به پراکسی معکوس برگردانده است.
521: وب سرور قطع است
این کد پاسخ Cloudflare زمانی ظاهر می شود که سرور مبدا نتواند به پروکسی معکوس متصل شود. ممکن است به این دلیل باشد که وب سرور مبدا اتصالات، از آدرس های IP خاص Cloudflare را مسدود کرده است.
522: مهلت اتصال تمام شد
Cloudflare نتوانست به سرور مبدأ دسترسی پیدا کند تا یک اتصال پروتکل کنترل انتقال (TCP) برقرار کند، و این تلاش منجر به تایم اوت شد. پیکربندی نادرست DNS شایع ترین دلیل این مشکل است.
523: مبدا، غیرقابل دسترس است
Cloudflare نتوانست به وب سرور مبدا دسترسی پیدا کند. این به دلیل سوابق یا تنظیمات DNS نادرست یا ناقص سرور است.
524: یک تایم اوت اتفاق داد
Cloudflare موفق شده است یک اتصال TCP به سرور مبدا برقرار کند. با این حال، پروکسی معکوس پاسخ HTTP را در یک بازه زمانی مشخص دریافت نکرده است که منجر به تایم اوت شده است.
525: SSL Handshake ناموفق بود
Cloudflare نتوانست یک SSL یا TLS را با وب سرور اصلی برقرار کند. ممکن است وبسایت دارای گواهینامه SSL با پیکربندی نامناسب باشد، که از برقراری ارتباط امن توسط کلاینت و سرور جلوگیری میکند.
599: خطای تایم اوت اتصال به شبکه
برخی از پراکسیهای HTTP این کد پاسخ را زمانی ارسال میکنند که وقفه ای در اتصال شبکه برای کلاینت در جلوی پروکسی رخ دهد.
کدهای وضعیت HTTP و سئو
موتورهای جستجو از خزنده های وب برای فهرست بندی محتوای وب سایت ها استفاده می کنند تا بتوانند از آنها برای رتبه بندی و نمایش در صفحات نتایج خود استفاده کنند. هنگام خزیدن در وب سایت ها، خزنده های وب همه کدهای وضعیت HTTP را که با آنها مواجه می شوند را ثبت می کنند تا سلامت سایت و رتبه بندی هر صفحه وب را تعیین کنند.
به همین دلیل کدهای وضعیت HTTP نقش بسزایی در سئوی سایت دارند.
بهترین سناریوی ممکن این است که همه صفحات سایت شما، کد وضعیت 200 را برگردانند که نشان می دهد همه منابع وب سایت، در دسترس هستند.
در حالی که کدهای وضعیت 3xx، کدهای وضعیت لزوما مضر برای سئو نیستند، اما شما باید تعداد آنها را در حداقل نگه دارید. این کلاس کد وضعیت HTTP (کدهای وضعیت 3xx) به موتورهای جستجو اطلاع می دهد که تغییر مسیر یا ریدایرکت ها در صفحات، موقت هستند یا دائم.
کدهای وضعیت 4xx و 5xx کدهایی هستند که می توانند به سئوی وب سایت شما آسیب بزنند. این کلاسهای کد پاسخ، ربات های جستجوگر را از فهرستبندی، رتبه بندی و خواندن صفحات وب سایت شما جلوگیری میکنند و منجر به این میشود که الگوریتمهای موتورهای جستجوگر، سایت شما را با کیفیت پایین قلمداد کنند.
بررسی دوره ای کدهای وضعیت HTTP یک وب سایت، بهترین راه برای حفظ سئو (SEO) آن است. دو راه برای نظارت بر کدهای وضعیت HTTP وب سایت شما وجود دارد: به صورت دستی یا با استفاده از ابزارهای Inspection URL.
روش دستی برای بررسی تک تک صفحات سایت، البته بهترین روش است زیرا به صورت صفحه به صفحه انجام می شود. می توانید با استفاده از ابزارهای داخلی مرورگرها نیز این کار را انجام دهید.
در اینجا نحوه بررسی کد پاسخ HTTP صفحات سایت با استفاده از ابزار DevTools کروم آورده شده است:
- پس از باز کردن صفحه وب مورد نظر خود در کروم، روی نماد سه نقطه در نوار منوی بالا کلیک کنید و به More Tools -> Developer Toolsبروید.
- تب Network را در بالا باز کنید. اگر Network را نمی بینید، روی نماد پیکان دوتایی کلیک کنید تا گزینه های بیشتر را نشان دهد و از گزینه های باز شده، Network را انتخاب کنید.
- یکی از درخواست های HTTP نشان داده شده در جدول را انتخاب کنید. کد وضعیت HTTP در برگه Headers ظاهر می شود. تصویر زیر نشان می دهد که صفحه مورد نظر ما، کد وضعیت 200 را برگردانده است.
اگر وب سایت شما صفحات زیادی دارد، استفاده از چک کننده های هدر HTTP برای بررسی صفحات سایت، کارهای شما را آسان تر خواهد کرد. به عنوان مثال، HttpStatus.io از بررسی انبوه تا 100 URL پشتیبانی می کند.
با این حال، توصیه میکنیم از ابزار ارائهشده توسط کنسول جستجوی گوگل استفاده کنید زیرا دارای ویژگیهای Inspection URL و Index Coverage Report است که سلامت کلی وبسایت را بررسی میکند.
در ابتدا به شما نشان خواهیم داد که چگونه می توانید وب سایت خود را به کنسول جستجوی گوگل اضافه کنید:- به صفحه اصلی کنسول جستجوی گوگل بروید و روی Start now کلیک کنید.
- نام دامنه خود را وارد کنید و روی Continue کلیک کنید.
- کد تأیید تولید شده توسط پلتفرم را کپی کنید. این برگه را باز بگذارید.
- به کنسول مدیریت DNS ثبت کننده نام دامنه خود بروید. به DNS Zone Editor از پنل مدیریت دامنه ای که به آن دسترسی دارید بروید.
- یک رکورد جدید با استفاده از کد تأیید به شرح زیر، به دی ان اس های قبلی اضافه کنید. دقت کنید که یک رکورد اضافه نکنید و هیچ رکوردی را حذف یا تغییر ندهید:
- Type ‒ TXT
- Name ‒ @ (مقدار پیش فرض را همانطور که هست رها کنید)
- TXT value ‒ کد تأیید کنسول جستجوی گوگل را اینجا وارد کنید
- TTL ‒ 14400
- روی Add Record کلیک کنید. اگر فرآیند موفقیت آمیز باشد، باید یک پیام تأیید را مشاهده کنید.
- صبر کنید تا رکوردهای DNS به طور کامل منتشر شوند. سپس، به برگه کنسول جستجوی گوگل برگردید و Verify را انتخاب کنید.
- اگر پیام زیر را مشاهده کردید، وب سایت را با موفقیت به پلتفرم اضافه کرده اید. برای دسترسی به داشبورد، روی Go to Property کلیک کنید.
از ابزار بازرسی Inspection URL برای بررسی صفحات جداگانه سایت خود استفاده کنید یا برگه Coverage را برای مشاهده سلامت عمومی وب سایت خود باز کنید.
به خاطر داشته باشید که کنسول جستجوی گوگل فقط برای ردیابی وب سایت های ثبت شده در فهرست گوگل کار می کند.
نتیجه گیری
دانستن نحوه خواندن کدهای وضعیت HTTP برای کاربران اینترنت، به ویژه وب مسترها ضروری است. هر کد وضعیت، به اطلاع کاربر میرساند که آیا سرور میتواند منبع درخواستی را بازیابی کند یا خیر.
از آنجایی که کدهای وضعیت HTTP به طور قابل توجهی بر سئو تأثیر می گذارند، بهتر است که به طور منظم با استفاده از چک کننده های هدر HTTP آنها را به صورت دوره ای بررسی کنید. در حالت ایده آل، همه صفحات سایت شما باید کد وضعیت 200 را برگردانند که نشان دهنده درخواست های موفق HTTP در سراسر سایت است.
امیدواریم این مقاله به شما در درک بهتر کدهای وضعیت HTTP کمک کرده باشد تا بتوانید به هر یک از آنها واکنش مناسبی ارائه بدهید. موفق باشید.