هر زمانی که شما مرورگر را باز میکنید و یک آدرس اینترنتی جستجو میکنید، ابتدا از سمت مرورگر و رایانه شما درخواستی به سمت سرور فرستاده میشود. سپس سرور پاسخ شما را در قالب یک کد وضعیت سرور (Status Code) به مرورگر شما ارسال میکند. البته کاربران عموماً قادر به مشاهده این کدها نیستند. اما این کدها برای سنجیدن وضعیت سرور و سایت استفاده میشوند و در حوزه سئو و مدیریت وبسایت معمولا بسیار مهم هستند. به حدی که اگر یک وبسایت به طور مداوم کدهای وضعیت نامناسب مانند کد 500 برای کاربر ارسال کند رتبه سایت در گوگل پایین خواهد آمد. در این مقاله خواهید آموخت که کدهای وضعیت HTTP چیست؟ همچنین به معرفی انواع کدهای HTTP Status code خواهیم پرداخت تا در صورت روبرویی با آنها بدانید که به چه دلیل هستند.
کد وضعیت HTTP چیست؟ (HTTP Status code)
کد وضعیت اچ تی تی پی (HTTP) یک پیام سه رقمی است از سمت سرور به مرورگر، در پاسخ به درخواست مرورگر! این پیام میتواند به معنی انجام شدن درخواست، یا انجام نشدن آن باشد. هنگامی که شما مرورگر را باز کنید و آدرس سایتی را جستجو کنید، سرورهای سایت درخواست شما را بررسی میکنند و فایلهای مورد نظرتان را برای شما میفرستند. این فایلها به همراه کدهای وضعیت “HTTP status code” به مرورگر ارسال میشوند. البته این کدها در حالت عادی نمایش داده نمیشوند. معمولاً زمانی قادر به مشاهده این کدها در مرورگر خود خواهید بود که مشکلی رخ داده باشد.
کدهای وضعیت HTTP زیادی وجود دارد که از مهمترین آنها میتوان کدهای وضعیت 4xx یا کدهای وضعیت 5xx را نام برد. کدهای وضعیت پاسخ، به عنوان ابزاری برای ارتباط بین مرورگر و سرور عمل میکنند. چندین نوع کد براساس اطلاعاتی که به مرورگر میدهند وجود دارد. به عنوان مثال؛ کد 404 دقیقا مانند تمام کدهای 4xx به معنی این است که نمیتوان به صفحه وب دسترسی پیدا کرد. یا کدهای 2xx همه به معنی این است که درخواست شما با موفقیت انجام شده است. در ادامه انواع کدهای HTTP را معرفی خواهیم کرد.
دستهبندی انواع کد وضعیت اچ تی تی پی (HTTP)
همانگونه که گفتیم کدهای HTTP اعداد سه رقمی هستند. رقم اول این کدها نشانگر نوع و دستهی کد است. Status codeها به طور کلی به 5 دسته تقسیم میشوند:
1xx اطلاعاتی: سرور درخواست شما را دریافت کرده و روند ادامه دارد.
2xx موفقیت آمیز: درخواست موفقیتآمیز بوده و مرورگر اطلاعات مورد نظر را دریافیت کرده است.
3xx تغییر مسیر: این نوع کدها معمولاً کدهای مربوط به ریدایرکت هستند. به این معنی که شما مجددا هدایت شدهاید و تکمیل درخواست به اقدامات بیشتری نیاز داد.
4xx خطای کاربر: دسترسی به وبسایت یا صفحه ممکن نیست. معمولاً صفحه غیر قابل دسترسی است یا درخواست به نحو نامناسبی صورت گرفته است.
5xx خطای سرور: درحالی که درخواست معتبر است، سرور نمیتواند درخواست را انجام دهد. ( مشکل از سمت سرور است.)
به طور کلی کاربران فقط در صورتی که مشکلی پیش آید کدها را در مرورگر مشاهده میکنند. درک این کدها میتواند به شما در مرور اینترنت کمک کند. مثلا هنگامی که با کد 404 روبرو شوید خواهید دانست که مشکل از سمت شماست و باید برای رفع مشکل تلاش کنید. در ادامه انواع کدهای HTTP را معرفی خواهیم کرد.
انواع کدهای وضعیت HTTP (HTTP Status code)
کدهای وضعیت 100 (اطلاعات)
اولین کدهای وضعیت که با عدد 100 شروع میشوند، به این معنی هستند که سرور درخواست را دریافت کرده و روند را ادامه می دهد.
100 ادامه (Continue): کد وضعیت 100 به این معنی است که قسمت اول درخواست توسط سرور دریافت شده است و مرورگر باید ارسال درخواست و اطلاعات را ادامه دهد.
101 پروتکل انتقال (Switching protocols): این کد به عنوان درخواست آپگرید از جانب مرورگر ارسال میشود و نشانگر تغییر پروتکل است.
102 پردازش (Processing): به این معنی است که سرور درخواست کامل را پذیرفته است اما هنوز آن را تکمیل نکرده است.
کدهای وضعیت 200 (موفق)
کد وضعیت 2xx به معنای موفقیت آمیز بودن درخواست است و مرورگر اطلاعات مورد انتظار را دریافت کرده است.
200 خوب (Ok): به این معنی که درخواست موفقیتآمیز بوده است.
201 ایجاد (Created): به این معنی است که درخواست با موفقیت انجام شده و یک یا چندین منبع جدید ایجاد شده است.
202 پذیرفته شده (Accepted): درخواست برای پردازش پذیرفته شده است اما هنوز پردازش به پایان نرسیده است.
203 اطلاعات نامعتبر (Non-Authoritative Information): کد وضعیت 203 به معنای موفقیت آمیز بودن درخواست است. البته اطلاعاتی که دریافت شده با آنچه در سرور مبدا قرار دارد متفاوت است و در عوض از کپی شخص ثالث یا محلی جمع آوری شده است.
204 بدون محتوا (No Content): با وجود اینکه درخواست با موفقیت انجام شده اما هیچ محتوایی برای نمایش وجود ندارد.
کدهای وضعیت 300 (انتقال)
کد وضعیت 3xx به این معنی است که شما مجدداً هدایت شدهاید و تکمیل درخواست به اقدامات بیشتری نیاز دارد.
300 انتقال چندگانه (Multiple Choices): کد 300 به این معنی است که درخواست چندین پاسخ احتمالی دارد و کاربر باید یکی را انتخاب کند.
301 انتقال دائمی (Moved Permanently): به این معنی است که صفحه یا فایل مورد نظر ما جابجا شده است.
302 پیدا شده (Found): این کد وضعیت یعنی درخواست مورد نظر در جایی غیر از آدرس مشخص شده پیدا شده است.
304 اصلاح نشده (Not Modified): کد 304 به مشتری اطلاع می دهد که پاسخ اصلاح نشده است. به این معنی که مشتری می تواند از نسخههای موجود در حافظه پنهان یا کش استفاده کند تا بارگیری صفحه زودتر انجام شود.
305 پروکسی (Use Proxy): این کد به کاربر اطلاع میدهد که برای دسترسی به منبع باید از پروکسی استفاده کند.
306 تغییر پروکسی (Switch Proxy): مانند کد قبلی عمل میکند، با این تفاوت که به کاربر اطلاع میدهد برای ادامه پروکسی را تغییر دهد.
کدهای وضعیت 400 (خطای مشتری)
کدهای وضعیت 4xx خطای مشتری به این معنی هستند که وبسایت یا صفحه غیر قابل دسترسی است.
400 درخواست بد (Bad Request): کد وضعیت 400 Bad Request به این معنی است که سرور به هر دلیلی درخواست مرورگر و کاربر را متوجه نمیشود.
401 غیر مجاز (Unauthorized): سرور برای انجام درخواست به احراز هویت کاربر نیاز داد. معمولا زمانی این کد فرستاده میشود که صفحه سایت از حالت عمومی خارج شده و فقط به افراد یا کاربران خاصی نمایش داده میشود.
403 ممنوع (Forbidden): درخواست مشتری رد شده است زیرا کاربر حق دسترسی به محتوا ندارد. تفاوت این خطا با خطای 401 در این است که اینجا هویت کاربر برای سرور کاملا شناخته شده است. اما چون مجاز به استفاده از منبع نیستند، پاسخ مناسب توسط سرور داده نمیشود.
404 پیدا نشد (Not Found): این کد وضعیت HTTP شایعترین کد است. به این معنی که سرور برای درخواست منبعی پیدا نکرده است و نمیداند که اصلا نتیجهای تا به حال وجود داشته است یا خیر!
405 روش غیر مجاز (Method Not Allowed): به این معنی است که در حالی که سرور روش درخواست را می داند ، روش غیرفعال شده است و نمی توان از آن استفاده کرد.
406 غیر قابل قبول (Not Acceptable): کاربر درخواستی ارسال کرده که برای سرور مجاز نمیباشد.
407 مجوز پروکسی (Proxy Authentication Required): مانند کد 401 عمل میکند اما در این مورد سرور به احراز هویت پروکسی نیاز داد.
408 مهلت درخواست (Request Timeout): به این معنی که سرور مدت زمانی را در انتظار دریافت درخواست از سمت کاربر بوده است اما درخواست کاملی دریافت نکرده است. این خطا ممکن است به دلیل تراکم اینترنت رخ دهد.
410 رفته (Gone): به این معنی است که منبع مورد نظر پاک شده است.
423 قفل شده (Locked): کد 423 به این معنی است که منبعی که سرور برای پاسخ به آن نیاز دارد قفل شده است.
429 درخواستهای متعدد (Too Many Requests): این کد یعنی در زمان مشخص، کاربر درخواستهای زیادی ارسال کرده است.
451 به دلایل قانونی در دسترس نیست (Unavailable For Legal Reasons): کاربر منبعی درخواست کرده است که به طور قانونی قابل ارائه نیست. مانند صفحات وب سانسور شده توسط دولت!
کدهای وضعیت 500 (خطای سرور)
کد وضعیت 5xx خطای سرور به این معنی است که اگرچه درخواست از سمت کاربر معتبر است، اما سرور نمیتواند درخواست را تکمیل کند. خطاهای سری 5xx به این دلیل که محتوا علاوه بر کاربران برای رباتهای گوگل نیز نمایش داده نمیشود از نظر سئویی بسیار منفی هستند. درصورتی که صاحب یک وبسایت هستید و با کد وضعیت HTTP 500 روبرو شدید بهتر است هرچه سریعتر اقدام به رفع مشکل کنید.
500 خطای داخلی سرور (Internal Server): کد وضعیت خطای 500 به این معنی است که مشکلی در سرور به وجود آمده هست. این مشکل به هر دلیلی ممکن است رخ دهد. به عنوان مثال قطع اتصال دیتابیس یکی از دلایل بروز خطای 500 است. این خطا معمولا با پیام “Internal Server 500” نمایش داده میشود.
501 اجرا نشده (Not Implemented): سرور قادر به پردازش درخواست کاربر نمیباشد.
502 (Bad Gateway): این خطا به این دلیل رخ میدهد که سرور پاسخ مناسبی از سرور دیگر دریافت نکرده باشد.
503 سرویس خارج از دسترس (Service Unavailable): کد وضعیت 503 به این معنی است که سرور در حال حاضر آماده رسیدگی و پاسخگویی به درخواست مرورگر نیست. این کد وضعیت معمولا هنگامی نمایش داده میشود که سرور در حال تعمیر یا نگهداری است و از کاربر یا ربات درخواست میکند که بعداً دوباره امتحان کنند.
504 پایان زمان (Gateway Timeout): این HTTP Status code هنگامی ارسال میشود که دو سرور در حال انجام و پردازش یک درخواست باشند و یکی از سرورها به موقع پاسخ دریافت نکند.
505 پروتکل HTTP پشتیبانی نمیشود (HTTP Version Not Supported): این کد وضعیت به این معنی است که نسخه HTTP استفاده شده در درخواست توسط سرور پشتیبانی نمی شود.
511 احراز هویت شبکه (Network Authentication Required): کاربر برای دسترسی به شبکه، نیاز به احراز هویت دارد.
همانطور که مشاهده کردید انواع کد وضعیت HTTP یا همان HTTP Status code وجود دارد که هرکدام در شرایط خاصی و به دلیل خاصی ارسال میشود. در این مقاله سعی کردیم به سادگی توضیح دهیم که کد وضعیت HTTP چیست؟ همچنین با انواع دسته بندی کدهای اچ تی تی پی آشنا شدید. در پایان نیز انواع کدهای HTTP را به زبان ساده معرفی کردیم تا در هنگامی که با خطاهای 500 یا خطاهای 400 روبرو شدید به راحتی آنها را تشخیص داده و مشکل را حل نمایید. سایت httpstatuses.com نیز لیستی از تمام کدهای وضعیت HTTP قرار داده که در صورت نیاز میتوانید مشاهده کنید. امیدواریم که این مقاله باب میل شما بوده باشد. در صورتی که سوال، پیشنهاد یا انتقادی دارید در بخش نظرات با ما درمیان بگذارید.
معرفی انواع HTTP Status code