
HTTP پروتکل درخواست و پاسخ وب است: کلاینت منبعی را میخواهد و سرور پاسخ میدهد. نشانی، روش درخواست، هدرها، کد وضعیت و گاهی بدنه، بخشهای این گفتگو هستند. نمایش یک خطا در مرورگر الزاماً به معنی یک خطای یکسان در همهٔ لایهها نیست.
درخواست و پاسخ چه دارند؟
روشهایی مانند GET برای دریافت منبع و POST برای فرستادن داده، نقش درخواست را مشخص میکنند. URL مقصد و هدرها اطلاعات تکمیلی را میرسانند. پاسخ شامل کد وضعیت، هدرها و در صورت نیاز بدنه است؛ بدنه میتواند HTML، تصویر یا دادهٔ دیگری باشد.
HTTP ذاتاً وضعیت درخواستهای مستقل را نگه نمیدارد. برنامهها برای قابلیتهایی مانند ورود و نشست، سازوکارهایی نظیر کوکی را به کار میبرند. موفقیت یک درخواست به معنی موفقیت تمام درخواستهای بعدی، فایلهای صفحه یا عملیات حساب کاربر نیست.
کدهای وضعیت و حدود تفسیر آنها
| نمونه | معنی کلی |
|---|---|
| 200 | درخواست با موفقیت پاسخ گرفته است. |
| 301 | منبع به مقصد دیگری منتقل شده و پاسخ، نشانی انتقال را اعلام میکند. |
| 403 | سرور دسترسی به درخواست را رد کرده است. |
| 404 | منبع درخواستی پیدا نشده است. |
| 500 | سرور در پردازش درخواست با خطای داخلی روبهرو شده است. |
کد، نقطهٔ شروع تشخیص است. برای مثال، 200 بهتنهایی درستبودن محتوای صفحه یا صحت پرداخت را ثابت نمیکند. 404 هم لزوماً به معنی قطع کل سرور نیست؛ مسیر خاص میتواند اشتباه یا حذف شده باشد.
HTTPS و تفکیک خطاهای ارتباط
HTTPS استفاده از HTTP با حفاظت TLS است؛ محرمانگی مسیر ارتباط و اعتبار هویت سرور به تنظیم درست اتصال و گواهی وابسته است. این حفاظت جای امنیت خود برنامه یا مجوز کاربران را نمیگیرد.
در تشخیص مشکل، ابتدا مشخص کنید نام دامنه حل میشود، اتصال برقرار میشود و سپس چه پاسخ HTTP برمیگردد. خطای DNS، خطای گواهی و پاسخ خطای برنامه علت و اقدام یکسان ندارند. گزارش Network مرورگر و لاگ مجاز سرور را برای همان URL و زمان بررسی کنید و اطلاعات حساس درخواست را عمومی نکنید.
کدهای خطای HTTP و اولین بررسی
| کد | معنی و مسیر بررسی |
|---|---|
| 400 | درخواست نامعتبر؛ ساختار و دادهٔ درخواست را بررسی کنید. |
| 401 | احراز هویت معتبر برای منبع لازم است؛ با ممنوعیت دسترسی یکسان نیست. |
| 403 | سرور درخواست را فهمیده ولی دسترسی را نمیپذیرد؛ سیاست مجوز را بررسی کنید. |
| 404 | منبع پیدا نشده؛ URL و مسیر و انتشار مقصد را کنترل کنید. |
| 408 | مهلت دریافت درخواست در سرور تمام شده است. |
| 500 | خطای عمومی سرور؛ علت دقیق از کد بهتنهایی معلوم نیست. |
| 501 | قابلیت لازم درخواست پشتیبانی یا پیادهسازی نشده است. |
| 502 | دروازه یا پراکسی پاسخ نامعتبر از سرور بالادست گرفته است. |
| 503 | سرویس موقتاً در دسترس نیست؛ مانند نگهداری یا بار زیاد. |
| 504 | دروازه یا پراکسی در انتظار پاسخ بالادست به مهلت رسیده است. |
کد را از پاسخ همان درخواست بگیرید؛ عنوان یک صفحهٔ خطا میتواند با وضعیت واقعی HTTP متفاوت باشد. URL، روش درخواست و زمان را ثبت و لاگ مجاز برنامه، وبسرور یا پراکسی را تطبیق دهید. همهٔ خطاهای 5xx از کمبود RAM نیستند و 403 را نباید با بازکردن عمومی مجوزها رفع کرد. برای درخواست تغییردهنده مانند پرداخت، پیش از تکرار اثر درخواست اول را مشخص کنید.


