تخصصی_شبکه کدهای وضعیت در پروتکل HTTP

✵BlackShadow✵

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2019/08/05
ارسالی ها
271
امتیاز واکنش
2,712
امتیاز
505
کدهای وضعیت (Status Codes) در پروتکل HTTP، جزئی از پاسخ به درخواست محسوب می‌شوند. تعداد کدهای غیررسمی در پروتکل HTTP بسیار زیاد است و تعداد کدهای رسمی چیزی در حدود شصت‌تاست که در پنج گروه اصلی تقسیم می‌شوند که تقسیم‌بندی این گروه‌ها طبق عدد صدگان کد است. در این تاپیک قصد داریم تعدادی از کدهای رسمی را بررسی کنیم.

گروه
1xx: این گروه فقط اطلاعاتی را در اختیار کلاینت می‌گذارند.
گروه
2xx: این گروه نشانگر موفقیت‌آمیزبودن درخواست کلاینت را دارند.
گروه
3xx: این گروه از کدها به این معنا هستند که کلاینت برای تکمیل درخواستش، باید اقدام دیگری نیز انجام دهد.
گروه
4xx: این گروه نشانگر مشکل از سمت کلاینت هستند.
گروه
5xx: این گروه نشانگر مشکل از سمت سرور هستند.


برخی از کدهای گروه 1xx
کد 100
کد 100 با پیام Continue به این معناست که سرور قسمتی از درخواست را دریافت کرده و از کلاینت می‌خواهد بقیه درخواست‌ها را نیز ارسال نماید.

کد 101
کد 101 با پیام Switching Protocols به این معناست که کلاینت درخواست داده تا پروتکل‌ها تعویض شوند و سرور درحال تأیید است.

کد 102
کد 102 با پیام Processing به این معناست که سرور درحال پردازش درخواست است.

کد 103
کد 103 با پیام Early Hints به معنای ارسال اطلاعات اولیه در هدر (سربرگ) HTTP به کلاینت، پیش از آنکه کل پاسخ ارسال شود است. این وضعیت در زمان‌هایی مانند پیش‌بارگذاری و... کاربرد دارد.

برخی از کدهای گروه 2xx
کد 200
کد دویست با پیام OK به این معناست که عملیات مورد نظر با موفقیت به پایان رسیده است.

کد 201
کد 201 با پیام Created به این معناست یک ریسورس جدید باید ایجاد گردد و تَسک مورد نظر برای انجام گرفتن به زمان بیشتری نیاز دارد.

کد 202
کد 202 با پیام Accepted به این معناست که پذیرش درخواست صورت گرفته است اما پردازش آن به دلیل طولانی بودن کامل نشده است.

کد 203
کد 203 با پیام Non-Authoritative Information به این معناست که سرور درخواست را با موفقیت بررسی کرده؛ اما ممکن است اطلاعاتی را که نشان می‌دهد از منبع درخواستی نباشد.

کد 204
کد 204 با پیام No Content هیچ محتوایی را در بدنه‌ی خود بازگردانی (return) نمی‌کند. این کد معمولا در پاسخ درخواست‌های Put و Post و Delete ارسال می‌شود و بازهم نشان از موفقیت‌آمیز بودن عملیات دارد.

کد 205
کد 205 با پیام Reset Content مانند کد 204 هیچ محتوایی را نشان نمی‌دهد؛ اما با این تفاوت که کلاینت باید نمای پرونده را دوباره تنظیم کند. (مثل خالی‌کردن یک فرم)

کد 206
کد 206 با پیام Partial Content به معنای دریافت محدوده خاصی از داده‌هاست. و زمانی کاربرد دارد که ارتباط قطع شده و پس از ارتباط مجدد، ادامه‌ی ارتباط صورت بگیرد. البته باید سرور نیز از این قابلیت پشتیبانی کند. مانند زمانی که در حال دانلود یک فایل هستید و اینترنت قطع می‌شود و می‌خواهید ادامه‌ی دانلود، از جایی که قطع شده صورت بگیرد.

کد 207
کد 207 با پیام Multi-Status به این معناست که پیغام در اصل یک پیغام XML است و بسته به نوع درخواست فرعی، می‌تواند پاسخ‌های مختلفی داشته باشد.

کد 208
کد 208 با پیام Already Reported به این معناست که قسمت‌هایی از درخواست قبلا پاسخ داده شده‌اند و دوباره شمرده نمی‌شوند.

کد 226
کد 266 با پیام IM Used به این معناست که سرور پاسخی ارسال کرده اما پاسخ حاصل نتیجه یک یا چند دستکاری است.
 
آخرین ویرایش:
  • پیشنهادات
  • ✵BlackShadow✵

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2019/08/05
    ارسالی ها
    271
    امتیاز واکنش
    2,712
    امتیاز
    505
    کدهای سری 3xx
    کد 300
    کد 300 با پیام Multiple Choices به این معناست که سرور، لیستی از پاسخ‌های آماده در دسترس دارد و ممکن است با توجه به درخواست‌کننده، پاسخی به او دهد یا لیستی از چند انتخاب.

    کد 301
    کد 301 با پیام Moved Permaetly به این معناست که ریسورس مورد نظر به مکان دیگری منتقل شده و در یک هدر (Header) از جنس Location، باید URI جدید ذکر شود.

    کد 302
    کد
    302 با پیام Found به این معناست که منبع مورد نظر یافت شده؛ اما مرورگر باید به صورت موقت به آدرس دیگری انتقال یابد. تفاوت این کد با کد 301 در این است که در 301، انتقال به صورت دائم بوده و آدرس جدید حذف و با آدرس جدید جایگزین می‌شود؛ اما در 302، انتقال موقتی بوده و آدرس فعلی نیز معتبر و در دسترس است.

    کد 303
    کد
    303 با پیام See Others نیز مانند 302 عمل می‌کند با این تفاوت که این کد بر متد GET تأکید دارد. در اینجا تغییر آدرس باید از طریق متد GET باشد که در حالت معمول نیز چنین است.

    کد 304
    کد
    304 با پیام Not Modified زمانی کاربرد دارد که مرورگر علاوه بر درخواست فعلی‌اش، درخواست اطلاعات آخرین تغییرات داده‌ی درخواستی را نیز دارد. اگر در بازه زمانی آخرین درخواست تا لحظه فعلی، هیچ تغییری در فایل درخواستی صورت نگرفته باشد، سرور در پاسخ به درخواست کاربر کد 304 را ارسال می‌کند. از فواید این کار می‌توان صرفه‌جویی در منابع سرور و افزایش سرعت پردازش را نام برد.

    کد 305
    کد
    305 با پیام Use Proxy به این معناست که کاربر برای دستیابی به منبع درخواستی، از پروکسی استفاده کند. پروکسی در اصل مانند یک سرور میانجی بین کاربر و سرور اصلی است.

    کد 306
    کد
    306 با پیام Switch Proxy به این معناست که کاربر برای دستیابی به منبع درخواستی، باید پروکسی‌اش را تغییر دهد.


    کد 307
    کد 307 با پیام Temporary Redirect برای زمانی است که بخواهیم کلاینت را به صورت به مسیر دیگری هدایت کنیم و بازهم باید URI مقصد جدید ذکر گردد.

    کد 308
    کد 308 با پیام Permanet Redirect به این معناست که تمامی درخواست‌هایی آینده و این درخواست باید از URI دیگری استفاده کنند.
     

    ✵BlackShadow✵

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2019/08/05
    ارسالی ها
    271
    امتیاز واکنش
    2,712
    امتیاز
    505
    کدهای سری 4xx
    کد 400
    کد 400 با پیام Bad Request زمانی رخ می‌دهد که مفهوم تقاضای کلاینت برای سرور روشن نیست و قابل پردازش نیست. البته این خطا ممکن است به دلیل نقص در انتقال داده‌ها (سرعت پایین یا قطع ارتباط) نیز صورت بگیرد.

    کد 401
    کد 401 با پیام Unauthorized زمانی رخ می‌دهد که کاربر به اطلاعات یا منبع درخواستی دسترسی نداشته باشد. در این حالت نیاز به تأیید دسترسی (معمولاً نام کاربری و کلمه عبور) دارد. پس سرور در پاسخ یک فرم از نوع WWW-Authenticate برای کاربر ارسال می‌کند و درخواست تأیید دارد. برای مثال زمانی که شما بخواید به صورت مهمان از تاپیک‌های
    Please, ورود or عضویت to view URLs content!
    دیدن فرمایید، با این خطا مواجه می‌شوید.


    کد 402
    کد 402 با پیام Payment Required مربوط به پرداخت است؛ اما در حال حاضر کاربر خاصی ندارد و برای آینده ساخته شده است.

    کد 403
    کد 403 با پیام Forbidden زمانی رخ می‌دهد که کاربر به اطلاعات یا منبع درخواستی دسترسی نداشته باشد. تفاوت این کد با 401 در این است که در اینجا حتی با نام کاربری و رمز عبور نیز امکان دسترسی به منابع درخواستی وجود ندارد. برای مثال زمانی که شما بخواهید به تاپیک‌های آرشیو
    Please, ورود or عضویت to view URLs content!
    دیدن کنید، با این خطا مواجه می‌شوید.


    کد 404
    کد 404 با پیام Not Found مربوط به زمانی است که کاربر درخواست منبعی را دارد و منبع مورد نظر یا موجود نبوده یا نام آن تغییر یافته و یا حذف شده است. در این موارد کاربر با این خطا روبه‌رو می‌شود. البته ممکن است آن منبع دوباره در آینده ایجاد گردد

    کد 405
    کد 405 با پیام Method Not Allowed مربوط به زمانی است که متد مورد استفاده‌ی کاربر برای درخواستش از سرور مجاز نیست. برای مثال زمانی که از متد GET در منابعی که نیاز به ارسال از طریق متد POST دارند استفاده شود، کاربر با این خطا مواجه می‌شود. البته در سربرگ داده‌ی ارسالی مربوط به این خطا، متد مجاز نیز ذکر می‌شود.

    کد 406
    کد 406 با پیام Not Acceptable مربوط به زمانی است که در درخواست از کارکترهای غیرمجاز استفاده شود. برخی از سرورها نیز اگر تشخیص دهند که درخواست ارسالی مشکوک و غیرامن است، از این کد استفاده می‌کنند.

    کد 407
    کد 407 با پیام Proxy Authentication Required شبیه به کد 401 عمل می‌کند با این تفاوت که اینجا در ابتدا کاربر باید اعتبار خود را از طریق یک پروکسی اثبات کند

    کد 408
    کد 408 با پیام Request Timeout زمانی مورد استفاده قرار می‌گیرد که سرور در انتظار درخواست کاربر است اما هیچ پاسخی در زمان تعیین‌شده دریافت نمی‌شود. در این شرایط کاربر با خطای 408 مواجه شده و بعداً می‌تواند درخواستش را مجدداً ارسال کند.

    کد 409
    کد 409 با پیام Conflict به معنی تداخل درخواست کاربر با عملیاتی دیگر در سمت سرور بر روی منبع مورد نظر است. برای مثال اگر دو کاربر به طور همزمان بخواهند یک فایل را ویرایش کرده و هر دو آن را ذخیره کنند، امکان دارد این خطا رخ دهد و باید دستی رفع شود.
     
    آخرین ویرایش:

    ✵BlackShadow✵

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2019/08/05
    ارسالی ها
    271
    امتیاز واکنش
    2,712
    امتیاز
    505
    کد 410
    کد 410 با پیام Gone مانند کد 404 به کاربر می‌گوید که آن منبع حذف شده و در دسترس نیست. اما برخلاف کد 404، در اینجا امکان برگشت آن منبع وجود ندارد و حذف دائمی است. البته از این کد خیلی کم استفاده می‌شود و تنظیم خطای 404 اصولی‌تر و بهتر است.

    کد 411
    کد 411 با پیام Length Required به معنی این است که سرور از پاسخ به کاربر خودداری می‌کند؛ زیرا درخواست ارسالی وجود ندارد. در این حالت، کاربر (مرورگر) باید درخواست خود را در قسمت سربرگ (هدر یا Header) اضافه کند.

    کد 412
    کد 412 به پیام Precondition Failed به این معناست که در درخواست ارسال شده، برخی موارد مانند متد استفاده شده، نمی‌تواند به منبع دسترسی داشته باشد و نتیجه اولیه false می‌شود.

    کد 413
    کد 413 با پیام Request Entity Too Large به این معناست که درخواست کاربر بیش‌ازحد طولانی بوده و خارج از توان و انتظار سرور است؛ پس در این شرایط، سرور این خطا را برای کاربر ارسال کرده و ارتباط را قطع می‌کند. البته ممکن است این حالت موقتی باشد که در این حالت در پاسخ ارسالی سرور، سربرگ Retry-After نیز ارسال می‌شود و کاربر می‌تواند بعداً درخواست خود را مجدداً ارسال کند.

    کد 414
    کد 414 با پیام Request-URI Too Long به این معناست که آدرس درخواستی بسیار طولانی بوده و سرور توان پردازش آن را ندارد.

    کد 415
    کد 415 با پیام Unsupported Media Type به این معناست که سرور قادر به پردازش فرمت ارسالی نیست و از فرمت‌های دیگری پشتیبانی می‌کند. برای مثال در یک سایت آپلود، قصد دارید یک فایل را آپلود کنید ولی سایت از آن فرمت پشتیبانی نمی‌کند. در این حالت سرور این خطا را ارسال می‌کند.

    کد 416
    کد 416 با پیام Requested Range Not Satisfiable به این معناست که درخواست ارسال‌شده، خارج از محدوده دسترسی است و قابل نمایش نیست.

    کد 417
    کد 417 با پیام Expectation Failed به این معناست که سربرگ‌های ارسالی توسط کاربر یا با موارد موردنیاز سرور همخوانی ندارند و یا سربرگی ارسال نشده است.

    کد 418
    کد 418 با پیام I’m a teapot در سال 1998 میلادی معرفی شد. این کد در آن سال به عنوان یک شوخی برای دروغ یک آپریل در لیست استانداردها قرار گرفت. با اینکه این کد فقط یک شوخی است اما هنوز هم در لیست استانداردها قرار دارد و در برخی از سایت‌ها از این کد بامزه استفاده شده است. برای مثال می‌توانید با رفتن به
    Please, ورود or عضویت to view URLs content!
    ، خطای قوری گوگل را ببینید. روی قوری کلیک کنید تا دلیل بامزه‌بودن این کد را ببینید.
     

    ✵BlackShadow✵

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2019/08/05
    ارسالی ها
    271
    امتیاز واکنش
    2,712
    امتیاز
    505
    کد 421
    کد 421 با پیام Misdirected Requests به این معناست که درخواست مورد نظر، به اشتباه به سرور ارسال شده است.

    کد 422
    کد
    422 با پیام Unprocessable Entity به این معناست که سرور درخواست را متوجه شده و مشکلی در درخواست وجود ندارد؛ اما باز هم نمی‌تواند درخواست مورد نظر را اجرا کند.

    کد 423
    کد
    423 با پیام Locked به این معناست که منبع مورد نظر، قفل می‌باشد.

    کد 424
    کد
    424 با پیام Failed Dependency به این معناست که پاسخ درخواست مورد نظر، وابسته به درخواست قبلی است و آن درخواست هنوز تکمیل نشده است.

    کد 425
    کد
    425 با پیام Too Early مربوط به ارتباط امن در پروتکل HTTPS است و زمانی رخ می‌دهد که اتصال امن بین واسط کاربری و سرور کامل صورت نگرفته است و واسط کاربری اقدام به ارسال درخواست می‌کند. در اینجا از طرف سرور، خطای 425 ارسال می‌شود و به این معناست که برای پذیرش محتوا، هنوز زود است. رخ دهد و کمتر کاربران سایت با آن مواجه می شوند.

    کد 426
    کد
    426 با پیام Upgrade Requests به این معناست که سرور تشخیص داده امکانات واسط کاربر به ارتقا نیاز دارند. در این حالت کد 426 و سربرگ Upgrade که در آن نوع ارتقا ذکر شده است، برگردانده می‌شوند. البته این کد در عمل زیاد کاربرد ندارد و کد 101 کاربرد بیشتری دارد.

    کد 428
    کد 428 با پیام Precondition Required زمانی استفاده می‌شود که سرور از کاربر بخواهد تا پیش شرط مورد نظرش را ارسال کند. این کار به این دلیل صورت می‌گیرد که فرآیندهای چندکاربره؛ مانند زمانی که چند کاربر به طور همزمان یک فایل را ویرایش می‌کنند، تداخلی نداشته باشند. این عمل با تنظیم کد 428 و استفاده از یکی از سربرگ‌های «If-Match» ،«If-None-Match» ،«If- Modified-Since» و «If-Unmodified-Since» انجام می‌گیرد.

    کد 429
    کد 429 با پیام Too Many Requests به این معناست که کاربر درخواست‌های زیادی را همزمان یا در مدت زمان تعیین شده‌ای ارسال کرده است و سرور قادر به پاسخ‌گویی به همه آن‌ها نیست پس برای ارسال درخواست جدید یا ارسال دوباره‌ی همین درخواست، باید مدتی را صبر کند که این مدت زمان در سربرگ Retry-After مشخص می‌شود.

    کد 431
    کد
    431 با پیام Request Header Fields Too Large به این معناست که واسط کاربری، در درخواست خود حجم زیادی از داده‌ها (بیشتر از مقدار مجازشده از سمت سرور) را در یک یا چند سربرگ وارد کرده است. در این حالت کاربر با خطای 431 مواجه می‌شود. در اینجا واسط کاربری باید یک یا چند سربرگ را حذف یا ویرایش کرده و مجدداً به ارسال درخواستش بپردازد. این کد وضعیت در خصوص کوکی‌ها کاربرد دارد.

    کد 451
    کد 451 با پیام Unavaible For Legal Reasons به این معناست که به دلایل قانونی مثل مسدودیت توسط مراجع دولتی، کاربر نمی‌تواند به منبع مورد نظرش دسترسی داشته باشد. سرور می‌بایست در سربرگ Link، آدرس مرجع مسئول که لزوماً سیاست‌گذار نیست ولی مسئولیت قانونی دارد را ذکر کند. برای مثال ممکن است سایت Instagram در قسمت Link آدرس سایت Youtube را قرار دهد.
     

    ✵BlackShadow✵

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2019/08/05
    ارسالی ها
    271
    امتیاز واکنش
    2,712
    امتیاز
    505
    کدهای سری 5xx
    کد 500
    کد 500 با پیام Internal Server Error به این معناست که در سرور خطایی داخلی صورت گرفته است و این خطا می‌تواند به دلیل نقض تنظیمات یا انجام به‌روزرسانی‌ نرم‌افزاری یا ‌سخت‌افزاری رخ دهد. زمانی که پشتیبان سایت قصد اعمال تغییراتی در سایت را داشته باشد که باعث از دسترس خارج شده سایت به صورت موقت می‌شود، بهتر است این کد را تنظیم کند.

    کد 501
    کد 501 با پیام Not Implemented به این معناست که سرور قادر به پردازش درخواست مورد نظر نمی‌باشد. در بیشتر مواقع این خطا زمانی رخ می‌دهد که به دلیل نقض در سرور، سرور از متد پشتیبانی نمی‌کند. این کد مانند کد 405 عمل می‌کند اما با این تفاوت که سرور در حالت کلی از متد استفاده شده پشتیبانی می‌کند اما به دلیل نقض در تنظیمات، به طور موقت قادر به انجام درخواست مورد نظر نمی‌باشد.

    کد 502
    کد 502 با پیام Bad Gateway به این معناست که سرور فعلی به عنوان یک دروازه میانجی عمل کرده ولی قادر به تکمیل درخواست کاربر نمی‌باشند و همچنین پاسخی از سرورهای بالادست (Upstream) دریافت نشده است. زمانی که این خطا رخ می‌دهد معمولاً با چند بار تلاش مجدد از سوی کاربر رفع می‌شود و یا در مدتی کوتاه رفع می‌شود. مهم‌ترین علت رخ‌دادن این خطا، استفاده از پروکسی است که به عنوان میانجی بین واسط کاربری و سرور سایت هستند.

    کد 503
    کد 503 با پیام Service Unavailable به این معناست که به دلیل ترافیک بالا یا انجام به‌روزرسانی، سرور موقتاً خارج از دسترس می‌باشد. این وضعیت به طور خودکار پس از مدت کوتاهی (معمولاً چند دقیقه تا چند ساعت) رفع می‌شود. معمولاً سرور به همراه این خطا، سربرگ Retry-After را ارسال می‌کند که در آن زمان مورد نظر جهت تلاش مجدد ذکر شده است.

    کد 504
    کد 504 با پیام Gateway Timeout به این معناست که سرور میانجی، در حداکثر زمان مجاز نمی‌تواند پاسخی از سرورهای بالادست دریافت کند.

    کد 505
    کد 505 با پیام HTTP Version Not Supported به این معناست که نسخه پروتکل HTTP ای که واسط کاربری از آن استفاده می‌کند، توسط سرور پشتیبانی نمی‌شود.

    کد 506
    کد 506 با پیام Variant Also Negotiates به این معناست که در تنظیمات داخلی سرور، اختلال وجود دارد.

    کد 507
    کد 507 با پیام Insufficient Storage به این معناست که به دلیل ناتوانی سرور در ذخیره‌سازی، متد مورد نظر بر روی منبع مورد نظر قابل پیاده‌سازی نمی‌باشد.

    کد 508
    کد 508 با پیام Loop Detected به این معناست که سرور در حین پردازش درخواست ارسالی، با یک حلقه بی‌نهایت مواجه شده پس عملیات پردازش به طور کلی متوقف شده است.

    کد 510
    کد 510 با پیام Not Extended به این معناست که منابع سرور برای تکمیل این عملیات کافی نبوده و به منبع بیشتری نیاز دارد.

    کد 511
    کد 511 با پیام Network Authentication Required به این معناست که کاربر برای دسترسی به شبکه، نیاز به احراز هویت دارد. این کد مربوط به تأیید اعتبار در شبکه‌های عمومی کنترل شده مانند Wi-Fiهای رایگانی که در مراکز عمومی قرار دارند است. به طور معمول در ابتدای اتصال به این‌گونه شبکه‌ها، یک فرم که به اصطلاح Captive Portal نام دارد برگردانده می‌شود تا کاربر تایید اعتبار شود.

    v5pl_captive-portal.png

    در تصویر بالا یک نمونه فرم Captive Portal را مشاهده می‌کنید.
    منبع: تیم اسکارت نگاه دانلود
     
    آخرین ویرایش:

    برخی موضوعات مشابه

    بالا