
کدهای وضعیت HTTP/HTTPS
کدهای وضعیت HTTP پاسخی هستند که سرور به درخواست مرورگر و کاربرها میدهد.
کدهای وضعیت HTTP/HTTPS
زمانی که شما قصد دارید یک سایت رو ببینید، مرورگر یک درخواست به سمت سرور میفرسته و سرور با توجه به شرایط مختلف یک کد سه رقمی رو در جواب درخواست مرورگر ارسال میکنه. به این کد سه رقمی کد وضعیت میگن.
این کدهای وضعیت معادل مکالمه های بین سرور و مرورگر هستند و نشان دهنده حالت های مختلف میباشد.
هنگامی که در بستر پروتکل HTTP یا (Hypertext Transfer Protocol) در وب در حال گشت و گذار و مرور صفحات مختلف هستیم،.
با هر آدرس url ای که از طریق مرورگر خود از سرور سایت ها ی مختلف درخواست می کنیم.
کدهایی در پس زمینه بین واسط کاربری ما (مرورگر) و سرور رد و بدل می شوند که به آنها در اصطلاح کدهای وضعیت HTTP یا (HTTP response status codes) می گویند.
این کدها توسط کنسرسیوم ها و بنیاد های جهانی استاندارد سازی وب از جمله IETF یا (Internet Engineering Task Force) و W۳C یا (World Wide Web Consortium) تعریف و سازمان دهی شده اند و امروزه تقریبا سرور یا مرورگری وجود ندارد که از اصول آنها پیروی نکند.
کدهای وضعیت HTTP چه به لحاظ فنی و چه به لحاظ کاربری، کاربردهای فراوانی دارند.
کدهای وضعیت HTTP را چگونه بررسی کنیم؟
برای مشاهده کدهای وضعیت HTTP، می توانید از قابلیت های مرورگرها (مخصوصا مرورگرهای جدید) برای توسعه دهندگان وب (web developers) استفاده کنید،.
معمولا در مرورگرهایی مثل فایر فاکس، گوگل کروم، اپرا و… قسمتی تحت عنوان ابزارهای توسعه دهندگان (developers tools) یا عناوینی شبیه آن وجود دارد که تمام فعل و انفعالات واسط کاربری (user agent) و سرور را نشان می دهد.
تفاوت HTTP ۱/۰ و HTTP ۱/۱
قبل از اینکه به بررسی کدهای وضعیت HTTP بپردازیم، بد نیست اشاره ای داشته باشیم به نسخه های مختلف آن، اعدادی که در مقابل تیتر بالا مشاهده می کنید (۱/۰ و ۱/۱) در واقع نسخه های مختلف پروتکل HTTP هستند که توسط گروه HTTP-WG که خود زیر مجموعه IETF یا (Internet Engineering Task Force) است.
توسعه یافته، HTTP ۱/۰ نسخه ابتدایی و قدیمی این پروتکل است که در ابتدا مورد استفاده قرار می گرفت و به دلیل نقایص و نقاط ضعفی که وجود داشت، به تدریج توسعه داده شد و استاندارد HTTP ۱/۱ شکل گرفت، در بستر نسخه جدید پروتکل HTTP کدهای وضعیت بیشتری تعریف شده و امروزه بیشتر سرور ها و مرورگرها از آن استفاده می کنند.
کدهای سری ۱۰۰، مربوط به اطلاعات (Informational)
اولین سری از کدهای HTTP، با عدد ۱۰۰ شروع می شود که در مورد نقل و انتقال بسته های اطلاعات مثل ارسال و دریافت فایل، کاربرد دارند و حالت موقت پاسخ سرور را نشان می دهند، به فرض وقتی از متد POST در فرم های وب استفاده می کنیم.
دریافت کد ۱۰۰ به معنی این است که سرور درخواست ما را پذیرفته و فرایند پردازش اطلاعات ادامه دارد، االبته بدون ارسال کد ۱۰۰ نیز این فرایند ادامه می یابد لذا ارسال آن از طرف سرور ضروری نیست و حتی در مرورگرهایی که از نسخه HTTP/۱.۰ استفاده می کنند، این کد قابل فهم و پردازش نیست.
کد ۱۰۰، ادامه ارسال (Continue)
کد ۱۰۰ به معنی این است که سرور درخواست مرورگر را دریافت کرده است و مرورگر می تواند ادامه اطلاعات را ارسال نماید، این کد مخصوصا در مواقعی که حجم زیادی از داده ها به فرض از طریق فرم های وب و متد POST ارسال می شود.
کاربرد دارد و مرورگر با ارسال هدر Expect: ۱۰۰-continue وضعیت سرور را جهت آمادگی ادامه ارسال اطلاعات بررسی می کند، اگر در جواب کد ۱۰۰ را دریافت کند، ادامه اطلاعات را ارسال می کند، در غیر این صورت کد ۴۱۷ Expectation Failed دریافت می شود.
کد ۱۰۱، تعویض پروتکل ها (Switching Protocols)
کد ۱۰۱ به معنی درخواست مرورگر از سرور جهت تعویض پروتکل نقل و انتقال داده است، در صورتی که سرور این تعویض پروتکل را مفید یا ضروری ارزیابی کند، از درخواست مرورگر پیروی خواهد کرد، به فرض تعویض پروتکل HTTP ۱/۰ به نسخه HTTP ۱/۱ می تواند مفید باشد.
یا استفاده از پروتکل های real-time و همزمان (synchronous) نیز به همین صورت است، مثلا در برنامه هایی که از آژاکس (Ajax) استفاده می کنند، این کد می تواند کاربرد داشته باشد.
کد ۱۰۲، در حال پردازش (Processing)
از آنجایی که درخواست های مرورگر از سرور ممکن است شامل انجام کارهای مختلفی باشد که هر کدام نیاز به پردازش جداگانه دارند، سرور با ارسال کد ۱۰۲ به مرورگر می گوید که عملیات درخواستی، دریافت شده و در حال پردازش است.
به این صورت مرورگر در انتظار پاسخ کامل سرور بوده و از قطع ارتباط به دلیل به پایان رسیدن حداکثر زمان (time out)، جلوگیری می شود.
کدهای سری ۲۰۰، درخواست موفق (Success)
کدهای سری ۲۰۰، به این معنی است که درخواست ارسالی واسط کاربری (که می تواند مرورگر یا ابزار دیگری باشد)، با موفقیت دریافت، موافقت، پردازش و پاسخ داده شده است، کدهای سری ۲۰۰ معمولا به معنی بی نقص بودن درخواست و عملکرد صحیح سرور است.
کد ۲۰۰، پاسخ موفق (OK)
کد استاندارد HTTP در وب، با عدد ۲۰۰ نشان داده می شود، دریافت پاسخ ۲۰۰ از سرور به این معنی است که آدرس درخواستی (در متد GET) یا عملیات مورد نظر (در متد POST) به طور کامل و موفقیت آمیز توسط سرور انجام شده است، در یک ارتباط بدون نقص بین واسط کاربری (user agent) و سرور، کدهای سری ۲۰۰ باید دریافت شوند.
کد ۲۰۱، ساخته شده (Created)
کد HTTP ۲۰۱ به معنی دریافت موفقیت آمیز درخواست و ساخته شدن یک منبع جدید در سرور است (به فرض ایجاد یک فایل یا صفحه جدید)، ارسال کد ۲۰۱ تنها در صورتی صحیح است که سرور منبع جدید را ساخته باشد، در غیر اینصورت (اگر منبع هنوز ساخته نشده باشد) باید کد ۲۰۲ را ارسال کند.
کد ۲۰۲، موافقت شده (Accepted)
کد ۲۰۲، به این معنی است که با درخواست واسط کاربری موافقت شده، اما پردازش عملیات به طور کامل صورت نگرفته است، به همین دلیل تا پایان پردازش عملیات درخواستی، ممکن است تقاضای کاربر کامل شده یا برعکس، رد شود.
کد ۲۰۳، اطلاعات غیر معتبر (Non-Authoritative Information)
کد ۲۰۳ که از ورژن HTTP ۱/۱ تعریف شده، به این معنی است که سرور درخواست واسط کاربری را به طور موفقیت آمیز پاسخ داده، ولی اطلاعات ارسالی (در پاسخ سرور) از یک منبع غیر معتبر است (به فرض کپی ازاطلاعاتی است که درستی آن تایید نمی شود)، تنظیم این کد در سرورها معمولا غیر ضروری است و می توان به جای آن کد ۲۰۰ را ارسال کرد.
کد ۲۰۴، پاسخ بدون محتوا (No Content)
کد ۲۰۴ به معنی دریافت و پردازش صحیح درخواست واسط کاربری است، اما پاسخ سرور شامل محتوای خاصی نیست و می تواند به فرض تنها اطلاعات مربوط به، به روز رسانی منبع درخواستی باشد.
معمولا دریافت این پاسخ از سرور، بدین معنی است که آدرس درخواستی هیچ گونه تغییری از آخرین درخواست تا لحظه کنونی نداشته است و فایل یا صفحه مربوطه به همان صورت قبلی نشان داده می شود.
کد ۲۰۵، بازنشانی محتوا (Reset Content)
کد ۲۰۵ شباهت زیادی به عملکرد کد ۲۰۴ دارد، یعنی در اینجا نیز هیچ محتوایی از طرف سرور ارسال نمی شود، اما در سمت کاربر، اطلاعات فعلی بازنشانی یا Reset می گردند که این معمولا منجر به ایجاد محتوای خالی می شود، این کد مخصوصا برای پاک کردن اطلاعات فرم های وب می تواند مورد استفاده قرار گیرد.
کد ۲۰۶، محتوای جزئی (Partial Content)
کد ۲۰۶، برای حالت هایی که به فرض از امکاناتی نظیر ادامه دانلود (resume download) استفاده می کنیم، کاربرد دارد، با ارسال این کد توسط سرور، به قسمت خاصی از درخواست واسط کاربری به صورت جزئی پاسخ داده می شود.
با این شیوه برنامه هایی که از GNU Wget یا نقل و انتقال داده از سرور پشتیبانی می کنند، قادر خواهند بود حتی پس از قطع ارتباط نیز به ادامه دریافت اطلاعات بپردازند، البته این قابلیت باید توسط سرور نیز پشتیبانی شود.