مقدمه
هر بار که در حال وبگردی هستید و صفحهای را باز میکنید، پشتصحنه فرآیندی بین مرورگر شما و سرور اتفاق میافتد. یکی از بخشهای مهم این فرآیند،کدهای وضعیت HTTP هستند. این کدها به مرورگر و سرور کمک میکنند تا وضعیت درخواستها را به شکل صحیح مدیریت کنند. به زبان ساده، کدهای وضعیت HTTP پیامهایی هستند که از سمت سرور به مرورگر ارسال میشوند تا به شما اطلاع دهند که درخواست شما چگونه پردازش شده است. در این مقاله، به معرفی و بررسی انواع کدهای وضعیت و اهمیت آنها میپردازیم.
برای آشنایی بیشتر با مبحث http مقالات قبلی از جمله مقاله پروتکل HTTP چیست؟ را مطالعه نمایید.
دوره کوتاه و بسیار کاربردی آموزش http و مبانی web دوره ای کامل و جامع است که شما را با مبانی وب آشنا می کند.
کد وضعیت HTTP یا HTTP Status Code چیست؟
کدهای وضعیت HTTP، مجموعهای از پیامهای سهرقمی هستند که به مرورگر اطلاع میدهند که درخواست ارسالی چگونه پردازش شده است. این کدها به طور خلاصه به مرورگر اعلام میکنند که آیا درخواست موفق بوده، به مقصد دیگری هدایت شده یا با خطا مواجه شده است. هر کد وضعیت به یک دسته خاص تعلق دارد و نوع خاصی از پاسخ را نشان میدهد. درک این کدها میتواند برای توسعهدهندگان و مدیران وبسایتها بسیار مهم باشد، چرا که به آنها در تشخیص مشکلات سرور و بهینهسازی عملکرد سایت کمک میکند.
کدهای وضعیت HTTP نقشی کلیدی در بهینهسازی موتورهای جستجو (SEO) ایفا میکنند. کدهایی مانند 404 (صفحه پیدا نشد) یا 500 (خطای سرور) میتوانند تأثیر منفی بر تجربه کاربری و در نتیجه بر رتبهبندی سایت در موتورهای جستجو داشته باشند. اگر صفحات سایت شما اغلب با این خطاها مواجه شوند، موتورهای جستجو مثل گوگل ممکن است صفحات شما را به عنوان منابع ناپایدار در نظر بگیرند و رتبه سایت کاهش یابد. از طرف دیگر، استفاده بهینه از کدهایی مثل301 (تغییر مسیر دائمی) یا 302 (تغییر مسیر موقت) به حفظ جایگاه سایت و ارائه تجربه کاربری بهتر کمک میکند، زیرا بازدیدکنندگان و موتورهای جستجو به درستی به مقصد جدید هدایت میشوند.
فهرست کدهای وضعیت HTTP
کدهای وضعیت HTTP به پنج گروه اصلی تقسیم میشوند که هر گروه نشاندهنده نوع خاصی از پاسخ سرور است:
1. 100: اطلاعاتی
این کدها نشان میدهند که درخواست اولیه دریافت شده و مرورگر یا سرور میتواند ادامه دهد.
2. 200: موفقیت
کدهای این گروه نشاندهنده آن هستند که درخواست کاربر با موفقیت انجام شده و سرور پاسخ مناسبی ارسال کرده است.
3. 300: تغییر مسیر
این دسته از کدها اعلام میکنند که درخواست باید به آدرس دیگری هدایت شود و مرورگر باید به طور خودکار به آن مسیر جدید برود.
4. 400: خطاهای کاربر
کدهای سری 400 بیانگر آن هستند که مشکلی در درخواست ارسالشده توسط کاربر وجود دارد، مثلاً آدرس اشتباه وارد شده یا مجوز دسترسی وجود ندارد.
5. 500: خطاهای سرور
کدهای این گروه نشان میدهند که سرور با مشکل داخلی مواجه شده است و نمیتواند به درستی به درخواست کاربر پاسخ دهد.
در ادامه هرکدام از کدها رو جداگانه بررسی می کنیم.
کدهای وضعیت سری 500 یا internal server error
کدهای وضعیت 500 وقتی ایجاد میشوند که درخواستی از مرورگر به سرور ارسال شود اما سرور نتواند به آن پاسخ دهد. به این کدها اصطلاحاً خطاهای سمت سرور گفته میشود. مهمترین کدهای وضعیت 500 شامل موارد زیر است:
کد 500: خطای داخلی سرور
کد 500 به این معناست که سرور با مشکلی داخلی مواجه شده و قادر به انجام درخواست نیست. این خطا معمولاً به دلیل مشکلات فنی یا نقص در کدهای سرور رخ میدهد. کاربران در این حالت معمولاً نمیتوانند صفحه مورد نظر را مشاهده کنند و با یک پیام خطای عمومی مواجه میشوند. رفع سریع این مشکل برای جلوگیری از افت تجربه کاربری و کاهش رتبه در موتورهای جستجو حیاتی است.
کد 501: پیادهسازی نشده
کد 501 نشان میدهد که سرور از یک قابلیت یا روش HTTP درخواستشده پشتیبانی نمیکند. این خطا بیشتر زمانی دیده میشود که درخواست کاربر شامل روشها یا ویژگیهای خاصی از پروتکل HTTP باشد که توسط سرور فعال یا پیادهسازی نشدهاند. برای حل این مشکل، وبمسترها باید اطمینان حاصل کنند که سرور از همه قابلیتهای مورد نیاز پشتیبانی میکند.
کد 502: Bad Gateway
این کد نشان میدهد که سرور به عنوان یک واسطه (گیتوی یا پراکسی) عمل کرده و پاسخی نامعتبر از سرور دیگر دریافت کرده است. این خطا معمولاً ناشی از مشکلات ارتباطی بین سرورهای مختلف است. برای وبمسترها، این خطا ممکن است نشاندهنده وجود مشکل در زیرساختهای شبکه باشد و باید بررسی شود.
کد 503: سرویس در دسترس نیست
کد 503 نشاندهنده آن است که سرور به طور موقت قادر به پاسخدهی به درخواستها نیست. این مشکل ممکن است به دلیل تعمیرات، حجم بالای ترافیک یا خرابی موقت سرور رخ دهد. در این مواقع، باید به کاربران اطلاع داده شود که سایت به زودی دوباره در دسترس خواهد بود. همچنین، از نظر سئو، سرورهایی که بیش از حد با این کد مواجه میشوند، ممکن است توسط موتورهای جستجو جریمه شوند.
کد 504: گیتوی تایماوت
کد 504 زمانی رخ میدهد که یک سرور به عنوان واسطه عمل کرده و برای دریافت پاسخ از سرور دیگر منتظر مانده، اما زمان انتظاری به پایان رسیده است. این مشکل ممکن است ناشی از کندی یا عدم پاسخگویی سرور مقصد باشد. برای حل این مشکل، باید از عملکرد درست سرورهای مرتبط اطمینان حاصل شود.
کد 505: نسخه HTTP پشتیبانی نمیشود
این کد نشاندهنده آن است که نسخه HTTP مورد استفاده توسط مرورگر کاربر توسط سرور پشتیبانی نمیشود. معمولاً این خطا زمانی رخ میدهد که مرورگر یا ابزارهای کاربر از نسخه قدیمی یا نادرست پروتکل HTTP استفاده میکنند. وبمسترها باید اطمینان حاصل کنند که سرور از نسخههای جدیدتر پروتکل HTTP پشتیبانی میکند تا کاربران به مشکلی برنخورند.
کدهای وضعیت سری 400:
کدهای وضعیت HTTP سری 400 برعکس کدهای سری 500، شامل خطاهای سمت کاربر بوده و در مواقعی نمایش داده میشود که سایت یا صفحه درخواستی قابل دسترسی نیست. این دسته کدها اعلام میکنند درخواست مرورگر دریافت شده اما آدرس صفحهای که درخواست شده، وجود ندارد. این خطاها از طرف وبسایت ایجاد میشوند و معمولاً وقتی رخ میدهند که صفحه موردنظر کاربر در سایت وجود نداشته باشد یا مثلاً آدرس آن تغییر کرده است. در ادامه مهمترین کدهای سری 400 را بررسی میکنیم:
کد 400: درخواست نامعتبر
کد 400 به این معناست که سرور نتوانسته است درخواست را به درستی درک کند، زیرا درخواست ارسالشده نادرست یا ناقص بوده است. این خطا ممکن است به دلیل وارد کردن نادرست دادهها یا نقص در مرورگر کاربر ایجاد شود. برای وبمسترها، دریافت این کد میتواند نشانهای از مشکلات در فرمهای ورودی یا ارسال درخواستهای نامعتبر باشد.
کد 401: عدم احراز هویت
این کد نشان میدهد که درخواست کاربر نیاز به احراز هویت دارد. این معمولاً برای صفحات یا منابعی استفاده میشود که تنها کاربران مجاز میتوانند به آنها دسترسی داشته باشند. کاربران باید اطلاعات ورود خود را وارد کنند تا اجازه دسترسی به آن بخش از سایت داده شود.این کد آشناترین کد برای ما ایرانیان در استفاده از سایت های خارجی است و اکثرا همه ما با آن روبه رو شده ایم.
کد 403: دسترسی ممنوع
کد 403 به معنای آن است که کاربر مجوز لازم برای دسترسی به منبع یا صفحه مورد نظر را ندارد، حتی اگر اطلاعات ورود را به درستی وارد کرده باشد. این خطا اغلب زمانی رخ میدهد که صفحه محدود به گروه خاصی از کاربران باشد یا دسترسی به آن به دلایل امنیتی محدود شده باشد.
کد 404: صفحه پیدا نشد
کد 404 یکی از شناختهشدهترین کدهای وضعیت HTTP است و به این معناست که سرور نتوانسته است صفحه یا منبع درخواستشده را پیدا کند. این مشکل معمولاً زمانی رخ میدهد که صفحه حذف شده یا آدرس آن تغییر کرده است، اما آدرس قدیمی هنوز توسط کاربران یا موتورهای جستجو درخواست میشود.
کد 405: روش مجاز نیست
کد 405 به این معناست که روش HTTP استفادهشده توسط کاربر (مانند POST یا GET) برای دسترسی به منبع درخواستشده مجاز نیست. به عنوان مثال، ممکن است کاربر بخواهد یک فرم را با روش POST ارسال کند، اما سرور تنها روش GET را مجاز کرده باشد.
کد 410: محتوای حذفشده
کد 410 به این معنی است که منبع درخواستشده به طور دائمی حذف شده است و هیچ نشانهای از بازگشت آن وجود ندارد. برخلاف کد 404 که ممکن است به دلیل اشتباه یا تغییرات موقتی رخ دهد، کد 410 به موتورهای جستجو اطلاع میدهد که صفحه برای همیشه حذف شده و باید از نتایج جستجو حذف شود.
کد 429: درخواستهای بیش از حد
این کد نشان میدهد که کاربر تعداد زیادی درخواست در یک بازه زمانی کوتاه ارسال کرده است و سرور درخواستهای او را موقتاً مسدود کرده است. این کد معمولاً برای جلوگیری از حملات "DDOS" یا حفاظت از منابع سرور استفاده میشود.
کدهای وضعیت سری 300:
کدهای وضعیت سری 300 شامل پیام تغییر مسیر است. این دسته کدها وقتی نمایش داده میشوند که هنگام درخواست یک صفحه به صفحه دیگری تغییر مسیر دهید. درواقع این کدها اعلام میکنند درخواست مرورگر به درستی دریافت شده اما پاسخ آن در مسیر دیگری قرار دارد. این کدها نهتنها خطری ندارند، بلکه بخشی از کار شما به عنوان وبمستر، استفاده از ریدایرکتها برای انتقال کاربر از برخی صفحات به صفحات دیگر است. برای مثال اگر نمیخواهید یک صفحه از سایتتان به هر دلیلی در معرض دید مخاطبان قرار گیرد، آن را به صفحهای مشابه ریدایرکت میکنید. در این قسمت از راهنمای کدهای وضعیت HTTP به بررسی مهمترین کدهای سری 300 میپردازیم :
کد 300: انتخابهای متعدد
کد 300 نشاندهنده این است که چندین گزینه برای درخواست کاربر وجود دارد و کاربر یا مرورگر باید یکی از آنها را انتخاب کند. این حالت زمانی پیش میآید که منابع با چندین فرمت یا زبان مختلف در دسترس باشند و سرور به مرورگر اعلام میکند که باید یک انتخاب صورت گیرد.
کد 301: تغییر مسیر دائمی
کد 301 به این معنی است که منبع درخواستشده به طور دائمی به آدرس جدیدی منتقل شده است. موتورهای جستجو و مرورگرها باید از این پس آدرس جدید را به جای آدرس قدیمی استفاده کنند. این کد برای انتقال دائمی صفحات قدیمی به صفحات جدید استفاده میشود و از نظر سئو نیز بسیار اهمیت دارد زیرا باعث انتقال اعتبار صفحه به آدرس جدید میشود.
کد 302: تغییر مسیر موقت
این کد نشان میدهد که منبع درخواستشده به طور موقت به آدرس دیگری منتقل شده است، اما کاربر باید همچنان از آدرس قدیمی استفاده کند. این کد معمولاً در مواقعی استفاده میشود که یک تغییر مسیر موقت نیاز است، مانند زمانی که سایت به طور موقت در حال تعمیر است.
کد 303: مشاهده منابع دیگر
کد 303 زمانی استفاده میشود که کاربر پس از ارسال یک درخواست POST باید به یک صفحه دیگر هدایت شود. این کد به مرورگر اطلاع میدهد که منبع درخواستشده را در یک URL دیگر جستجو کند.
کد 304: محتوایی بهروز نیست
این کد به مرورگر میگوید که محتوای مورد درخواست از آخرین باری که کش (Cache) شده است، تغییر نکرده است. بنابراین مرورگر میتواند از نسخه کششده خود استفاده کند. این کد باعث افزایش سرعت بارگذاری سایت و کاهش بار سرور میشود.
کد 307: تغییر مسیر موقت (با حفظ روش)
کد 307 مشابه کد 302 است، اما با این تفاوت که مرورگر باید روش (method) درخواست فعلی را حفظ کند. به عنوان مثال، اگر درخواست اولیه با روش POST انجام شده است، تغییر مسیر نیز باید با همان روش انجام شود.
کدهای وضعیت سری 200:
کدهای وضعیت سری 200، کدهای شامل پیام موفقیت هستند. این دسته کدها اعلام میکنند که همه چیز به حالت طبیعی اجرا شده و پاسخ مورد انتظار برای مرورگر ارسال شده است. در این حالت سرور درخواست مرورگر را به خوبی دریافت کرده و پاسخ صحیح آن را بدون اختلال صادر کرده است. در نتیجه کاربر میتواند دقیقاً همان صفحهای را که درخواست کرده، مشاهده کند. به عنوان یک وب مستر باید مطمئن شوید همه صفحات و منابع سایت شما، کدهای سری 200 را در پاسخ به کاربران اعلام کرده و همه آنها به راحتی در دسترس کاربران قرار دارند. مهمترین کدهای سری 200 را در زیر معرفی کرده ایم.
کد 200: موفقیت
کد 200 نشاندهنده آن است که درخواست با موفقیت انجام شده است و سرور پاسخ صحیح را بدون هیچ مشکلی به کاربر ارسال کرده است. این یکی از رایجترین کدها در وب است و زمانی اتفاق میافتد که همه چیز به درستی کار کند. وبمسترها باید مطمئن شوند که تمامی صفحات و منابع سایت این کد را بازگردانند تا تجربه کاربری مطلوبی ارائه شود.
کد 201: ایجاد شد
کد 201 نشان میدهد که درخواست موفق بوده و یک منبع جدید در سرور ایجاد شده است. این کد معمولاً در پاسخ به درخواستهای POST دیده میشود، مانند زمانی که یک کاربر یک فرم را با موفقیت ارسال میکند.
کد 202: درخواست پذیرفته شد
کد 202 به معنای آن است که درخواست دریافت شده است، اما هنوز پردازش آن به پایان نرسیده است. این کد برای عملیات طولانیمدت مناسب است که نیاز به پردازش زمانبر دارند.
کد 203: اطلاعات غیرمعتبر
کد 203 به این معناست که اطلاعات ارائهشده توسط سرور ممکن است ناقص یا غیرمعتبر باشد و از منبع دیگری دریافت شده باشد. این کد معمولاً زمانی رخ میدهد که سرور واسطه اطلاعاتی از منبع دیگر بازمیگرداند.
کد 204: بدون محتوا
کد 204 نشاندهنده آن است که درخواست موفق بوده است، اما سرور هیچ محتوایی برای ارسال ندارد. این حالت ممکن است در مواقعی که فقط تأیید یک درخواست مورد نیاز است، مانند حذف موفقیتآمیز یک آیتم، رخ دهد.
کدهای وضعیت سری 100: کدهای وضعیت سری 100 شامل پاسخ اطلاعاتی است و اعلام میکند سرور در حال پردازش درخواست مرورگر است. این کدها کاملاً موقتی هستند و امکان ظاهر شدن آنها بسیار کم است. درواقع، کدهای وضعیت 100 پاسخ نهایی یک پردازش نیستند و در صورتی که حین پردازش درخواستی به سرور ارسال شود، پاسخهایی از سری 100 داده میشود. البته این شرایط خیلی به ندرت اتفاق میافتد.
کد 100: ادامه
کد 100 به مرورگر اطلاع میدهد که بخشی از درخواست دریافت شده و میتواند به ارسال ادامه دهد. این کد معمولاً در درخواستهای بزرگ دیده میشود.
کد 101: تغییر پروتکل
این کد نشاندهنده این است که مرورگر درخواست تغییر پروتکل داده و سرور با آن موافقت کرده است. این تغییر میتواند برای برقراری ارتباط امنتر یا کارآمدتر استفاده شود.
کد 102: پردازش
کد 102 نشان میدهد که سرور در حال پردازش یک درخواست پیچیده است و ممکن است زمان بیشتری نیاز داشته باشد. این کد معمولاً در درخواستهای طولانی مانند آپلود یا پردازشهای سنگین استفاده میشود.
جمعبندی
کدهای وضعیت HTTP نقشی کلیدی در تعاملات بین مرورگر و سرور دارند. آگاهی از عملکرد این کدها و مدیریت صحیح آنها میتواند به بهبود تجربه کاربری و همچنین بهینهسازی سئو کمک کند. مطمئن شوید که سایت شما از کدهای مناسب استفاده میکند و خطاهای مهم به درستی مدیریت میشوند تا تأثیری منفی بر روی کاربران و رتبه سایت شما نداشته باشند.
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید