کدهای وضعیت HTTP توضیح داده شده، از ۲۰۰ تا ۵۰۳
هر بار که مرورگر شما از یک سرور وب چیزی درخواست میکند، سرور پیش از ارسال هر HTML، تصویر یا JSON با یک عدد سهرقمی پاسخ میدهد. این عدد کد وضعیت HTTP است و روش کوتاه سرور برای گفتن اینکه چه اتفاقی افتاده است: صفحه اینجاست، منتقل شده، مجاز نیستید وارد شوید، یا از طرف ما چیزی خراب شده. بیشتر اوقات این کدها را نمیبینید چون همه چیز کار میکند و صفحه فقط بارگذاری میشود. اما لحظهای که یک سایت اشتباه رفتار میکند، کد وضعیت اولین سرنخ ارزشمندی است که باید خواند.
اعداد تصادفی نیستند. اولین رقم هر پاسخ را به یکی از پنج خانواده تقسیم میکند، بنابراین حتی یک کد ناآشنا فقط با عدد پیشروش تقریباً میگوید چه مشکلی وجود دارد. پنج خانواده را یاد بگیرید و میتوانید تقریباً هر پاسخی را با یک نگاه بخوانید.

پنج کلاس
1xx اطلاعاتی. سرور درخواست شما را دریافت کرده و هنوز روی آن کار میکند. در مرور روزمره نادر هستند و معمولاً بین مرورگر و سرور بیصدا مدیریت میشوند. 100 Continue نمونه کلاسیک است که به یک کلاینت میگوید ادامه دادن و ارسال بقیه بدنه یک درخواست بزرگ مشکلی ندارد.
2xx موفقیت. درخواست کار کرد. 200 OK همان چیزی است که میخواهید تمام روز ببینید، به این معنا که منبع پیدا شد و در راه است. 201 Created بعد از ارسال یک فرم یا فراخوانی API که چیز جدیدی میسازد ظاهر میشود، و 204 No Content یعنی عمل موفق شد اما چیزی برای نمایش وجود ندارد.
3xx تغییر مسیر. آنچه درخواست کردید جای دیگری است، و مرورگر معمولاً به صورت خودکار پیروی میکند. تغییر مسیرها لینکهای قدیمی را زنده نگه میدارند و برای رتبهبندی جستجو اهمیت زیادی دارند.
4xx خطای کلاینت. چیزی در مورد درخواست از طرف شما اشتباه بود: یک URL بد، ورود به سیستم گمشده، یا منبعی که وجود ندارد. سرور سالم است؛ فقط نمیتواند آنچه فرستادید را بپذیرد.
5xx خطای سرور. درخواست شما خوب بود، اما سرور هنگام پردازش آن دچار مشکل شد. اینها به زیرساخت سایت اشاره میکنند، نه به شما.
کدهای خاصی که مردم واقعاً جستجو میکنند
200 OK موفقیت ساده است. صفحه یا داده همانطور که انتظار داشتید بارگذاری شد.
301 Moved Permanently به مرورگرها و موتورهای جستجو میگوید یک صفحه خانه دائمی جدیدی دارد. این تغییر مسیر سازگار با SEO است، چون سیگنالهای رتبهبندی را از URL قدیمی به URL جدید منتقل میکند. از آن استفاده کنید وقتی یک URL را برای همیشه تغییر میدهید.
302 Found یک تغییر مسیر موقت است. URL اصلی هنوز واقعی است، بنابراین موتورهای جستجو آن را به جای مقصد ایندکس میکنند. فقط به ۳۰۲ دسترسی پیدا کنید وقتی جابجایی واقعاً کوتاهمدت است، مثل هدایت کاربران به یک صفحه فرود فصلی.
304 Not Modified یک قهرمان بیسر و صدای مرور سریع است. به مرورگر میگوید نسخهای که قبلاً در cacheاش نشسته هنوز بهروز است، بنابراین سرور از ارسال مجدد فایل صرفنظر میکند. داده کمتر، صفحات سریعتر.
400 Bad Request یعنی سرور حتی نمیتوانست درخواست را بفهمد، اغلب به دلیل نحو ناقص یا یک پارامتر نامعتبر.
401 Unauthorized تقریباً به معنای «نمیدانم شما کی هستید، لطفاً احراز هویت کنید» است. اعتبارنامه معتبر ندارید.
403 Forbidden فرق دارد: سرور میداند شما کی هستید و همچنان رد میکند. مجوز ندارید، و دوباره وارد شدن کمکی نخواهد کرد.
404 Not Found معروفترین کد همه است. سرور زنده است و به شما پاسخ داد، اما در آن آدرس چیزی وجود ندارد. معمولاً از یک لینک اشتباه تایپشده یا صفحهای که بدون تغییر مسیر حذف یا جابجا شده میآید.
429 Too Many Requests یعنی محدود شدهاید. درخواستهای بسیار زیادی در پنجره زمانی بسیار کوتاهی فرستادید و سرور میخواهد کند شوید. APIها به طور مداوم از این استفاده میکنند.
500 Internal Server Error پاسخ عمومی «چیزی شکست» است. سرور به یک شرایط غیرمنتظره برخورد کرد و تسلیم شد، اما نمیگوید چه. لاگهای سرور را بررسی کنید.
502 Bad Gateway وقتی ظاهر میشود که یک سرور، در حال عمل به عنوان دروازه یا پروکسی، یک پاسخ نامعتبر از یک سرور upstream پشت آن دریافت میکند. اغلب نشانهای است که یک برنامه backend کرش کرده یا در دسترس نیست.
503 Service Unavailable یعنی سرور موقتاً بیش از حد بارگذاری شده یا برای نگهداری خاموش است. برخلاف ۵۰۰، نشان میدهد مشکل کوتاهمدت است و سایت باید به زودی برگردد.

کدهای وضعیت برای SEO و اشکالزدایی چه معنایی دارند
برای رتبهبندی جستجو، تمایز بین ۳۰۱ و ۳۰۲ چیزی است که مردم را غافلگیر میکند. یک جابجایی دائمی باید همیشه از ۳۰۱ استفاده کند تا صفحه جدید اعتبار قدیمی را به ارث ببرد؛ یک ۳۰۲ در جای اشتباه میتواند موتورهای جستجو را در حالتی بگذارد که URL اصلی را ایندکس کنند و سیگنالهای شما را تقسیم کنند. در این میان، تعداد زیادی از ۴۰۴ها بودجه crawl را هدر میدهند و بازدیدکنندگان را ناامید میکنند، بنابراین ارزش دارد لینکهای شکسته را به جای رها کردن تغییر مسیر دهید یا برطرف کنید.
برای اشکالزدایی، خانواده به شما میگوید کجا نگاه کنید. یک ۴xx به درخواست اشاره میکند، بنابراین URL، هدرها و اعتبارنامهها را بررسی کنید. یک ۵xx به سرور اشاره میکند، بنابراین لاگهای برنامه، سرویسهای upstream و اینکه آیا تازه یک دیپلوی خراب شده بررسی کنید. موجی از ۵۰۲ها و ۵۰۳ها اغلب یعنی یک backend خاموش یا بیش از حد بارگذاری شده است نه یک باگ کد. میتوانید وضعیت دقیقی که یک سایت برمیگرداند با ابزارهای توسعهدهنده ما بررسی کنید، و وقتی یک ۵xx شبیه مشکل اتصال به نظر میرسد نه یک خطای برنامه، یک جستجوی DNS سریع میتواند تایید کند دامنه هنوز به آدرس درست حل میشود.
پرسشهای متداول
آیا خطای ۴۰۴ برای وبسایت من بد است؟
چند ۴۰۴ عادی و بیضرر هستند. مشکلات وقتی شروع میشوند که صفحات محبوب ۴۰۴ برگردانند یا لینکهای داخلی شکسته انباشته شوند و بودجه crawl را هدر دهند و بازدیدکنندگان را ناامید کنند. صفحات جابجاشده را تغییر مسیر دهید و لینکهای بد را برطرف کنید.
تفاوت تغییر مسیر ۳۰۱ و ۳۰۲ چیست؟
۳۰۱ دائمی است و سیگنالهای رتبهبندی را به URL جدید منتقل میکند، بنابراین وقتی صفحه برای همیشه جابجا میشود از آن استفاده کنید. ۳۰۲ موقت است و URL اصلی را ایندکس نگه میدارد، بنابراین فقط برای جابجاییهای کوتاهمدت از آن استفاده کنید.
تفاوت ۴۰۱ و ۴۰۳ چیست؟
۴۰۱ یعنی احراز هویت نکردهاید، بنابراین ممکن است ورود به سیستم آن را برطرف کند. ۴۰۳ یعنی سرور شما را میشناسد اما همچنان دسترسی را رد میکند چون مجوز ندارید، بنابراین دوباره وارد شدن کمکی نخواهد کرد.
خطای ۵۰۰ به چه معناست و چگونه آن را برطرف کنم؟
خطای ۵۰۰ Internal Server Error یعنی سرور هنگام پردازش درخواست شما با یک نقص غیرمنتظره مواجه شد. پیام عمداً عمومی است، بنابراین برطرف کردن معمولاً با خواندن لاگهای سرور برای یافتن علت واقعی شروع میشود.
چرا کد وضعیت ۴۲۹ دریافت میکنم؟
۴۲۹ Too Many Requests یعنی به دلیل ارسال درخواستهای بیش از حد سریع محدود شدهاید. کند شوید، هر هدر Retry-After که سرور برمیگرداند را رعایت کنید، و به اسکریپتها و کلاینتهای API عقبنشینی تدریجی اضافه کنید.
۵۰۳ Service Unavailable به چه معناست؟
۵۰۳ یعنی سرور موقتاً قادر به پردازش درخواست نیست، معمولاً به دلیل بارگذاری بیش از حد یا نگهداری برنامهریزیشده. یک مشکل کوتاهمدت را نشان میدهد، بنابراین سایت باید به زودی به خودی خود بازیابی شود.
