در فرایند درخواست های HTTP ، همیشه یک کد وضعیت (Status Code) از سمت سرور برای مشخص کردن نوع نتیجه ی پاسخ مشخص میگردد که هرکدوم از اونها معنا و مفهوم خاص خودش رو داره ، در این مطلب قصد داریم ، تا بصورت خلاصه شرح هر کد وضعیت رو بررسی کنیم .
پاسخهای ارسالی از سمت سرور به 5 دسته تقسیم میشن :
- Informational Responses (پاسخهای اطلاع رسانی) که در رنج 100-199 قرار میگیرن
- Successful Responses (پاسخهای موفقیت آمیز) که در رنج 200-299 قرار میگیرن
- Redirects (انتقالی) که در رنج 300-399 قرار میگیرن
- Client Errors (خطاهای سمت مشتری) که در رنج 400-499 قرار میگیرن
- Server Errors ( خطاهای سمت سرور) که در رنج 500-599 قرار میگیرن
Informational Responses (پاسخ های اطلاع رسانی)
100 – Continue
سرور هدر درخواست ها رو دریافت کرده و اعلام میکنه که کلاینت body درخواست رو ارسال کنه (در صورتی که درخواست دارای body باشه ، مثلا ارسال POST صورت گرفته باشه).
101 – Switching Protocol
این پاسخ در درخواست Upgrade ارسال شده در header ارسالی از سمت کلاینت برمیگرده و پروتکلی که سرور بهش تغییر پیدا میکنه رو مشخص میکنه (مثلا وقتی قصد اتصال به یک WebSocket رو داشته باشید این مورد رو پیش میاد)
102 – Processing
این درخواست مشخص میکنه سرور درخواست رو دریافت کرده و در حال پردازشش هست ، ولی هنوز پاسخی قابل ارائه نیست.
103 – Early Hints
این کد وضعیت بطور کلی در کنار هدر Link استفاده میشه و این امکان رو به user agent میده که پیش بارگذاری منابع رو تا زمان آماده سازی پاسخ سرور انجام بده
Successful Responses (پاسخ های موفقیت آمیز)
200 – OK
درخواست با موفقیت انجام شد که این موفقیت بسته به نوع درخواست HTTP متفاوت می باشد:
درخواست GET: منبع موردنظر دریافت شده و در message body برای کلاینت ارسال شده است
درخواست HEAD: Representation Headers ها در پاسخ ارسال میشه بدون بدنه ی پیام
درخواست PUT یا POST: نتیجه ی درخواست ارسال شده در Message Body ارسال میشه
درخواست TRACE: Message Body حاوی Request Message دریافتی از سمت سرور می باشد.
201 – Created
درخواست با موفقیت انجام شد و یک منبع جدید در سرور برای درخواست ارسال شده ایجاد شد. معمولا این جوابی هست که در پاسخ به درخواست های POST و PUT ارسال میشه.
202 – Accepted
درخواست ارسالی از سمت سرور دریافت شده ولی هنوز عملیاتی روی درخواست صورت نگرفته. این پاسخ معمولا در حالتهایی که درخواست دریافتی نیاز به پردازش سنگین داره یا Batch processing روی درخواست ها صورت میگیره ارسال میشه (مثلا شما درخواست رو به RabbitMQ ارسال کردین تا از طریق یه سیستم دیگه ای روش پردازش صورت بگیره )
203 – Non-Authoritative Information
این پاسخ نشون میده که پاسخ ارسالی تغییر پیدا کرده (معمولا وقتی یک proxy server داشته باشید این مسئله پیش میاد)
204 – No Content
سرور درخواست رو با موفقیت پردازش کرده ولی هیچ محتوایی برگردانده نشده
205 – Reset Content
به User-Agent اعلام میکنی که درخواست ازش ارسال شده رو ریست کنه
206 – Partial Content
این کد زمانی برای کلاینت ارسال میشه که در درخواست ارسالی از سمت کلاینت ، هدر Range برای دریافت بخشی از یک resource ارسال شده باشه
پیامهای انتقالی (Redirection Messages)
300 – Multiple Choice
برای درخواست ارسالی ، چند پاسخ مختلف وجود دارد که User-Agent یا کاربر میتونه یکی از اونها رو انتخاب کنه (روش استانداری برای انتخاب از بین گزینه های موجود وجود ندارد، پیاده کننده سیستم میتونه از طریقی که خودش میتونه امکان انتخاب رو به کاربر بده)
301 – Moved Permanently
آدرس درخواستی بطور کامل تغییر پیدا کرده و آدرس جدید در پاسخ ارسال میشه
302 – Found
این کد به معنای این هست که منبع درخواستی بصورت موقت تغییر پیدا کرده .
303 – See Other
سرور زمانی این کد رو برمیگردونه که به کلاینت اعلام کنه منبع درخواستی از طریق یک آدرس دیگه قابل دسترس هست
304 – Not Modified
این کد برای مباحث مربوط به caching استفاده میشه. این کد به کلاینت میگه که تغییری در منبع درخواستی ایجاد نشده و کلاینت میتونه از نسخه ی cache شده ی خودش استفاده کنه .
307 – Temporary Redirect
این کد بدین معناست که کلاینت منبع درخواستی رو از آدرس دیگه ای بگیره ، فقط بایستی درخواست رو با متد قبلی به آدرس جدید ارسال کنه. یعنی اگر یک درخواست POST به UriA ارسال کرده و درجواب UriB رو دریافت کرده ، بایستی مجدد درخواست به UriB رو با متد POST ارسال کنه .
خطاهای سمت مشتری (Client Error Messages)
400 – Bad Request
بدلیل اشتباه بودن اطلاعات ارسالی از سمت کلاینت ، سرور نمیتونه درخواست رو بفهمه
401 – Unauthorized
کلاینت درخواست دریافت منبعی رو داره که اجازه ی دسترسی بهش رو نداره
402 – Payment Required
این کد برای استفاده های آینده رزرو شده و هدفش برای استفاده در سیستم های پرداخت آنلاین هست و در حال حاضر کاربر خاصی نداره .
403 – Forbidden
کلاینت اجازه ی دسترسی به منبع مورد نظر رو نداره (برخلاف خطای 401 ، هویت کلاینت توسط سرور شناخته شده هست ، اما اجازه ی دسترسی به منبع درخواستی رو نداره)
404 – Not Found
منبع درخواستی توسط کلاینت توسط سرور پیدا نشده . در درخواستهایی که توسط مرورگر ارسال میشه یعنی URL مدنظر موجود نیست ولی در API ها میتونه به این معنی باشه که endpoint درست هست ولی ، منبع درخواستی وجود نداره .
همینطور سرور میتونه بجای پاسخ 403 ، خطای 404 رو برگردونه تا وجود منبع مورد نظر رو از نظر درخواست کننده پنهان کنه .
405 - Method Not Allowed
متد درخواست شده توسط سرور معتبر شناخته شده ، اما توسط آدرس ارسالی پشتیبانی نمیشه . برای مثال شما به یک آدرس درخواست POST ارسال میکنید ، در صورتی که اون آدرس GET رو پشتیبانی میکنه
این مطلب مجددا بروزرسانی می شود .
نظرات کاربران (0)