۸ خطای HTTP و راه‌حل‌های آن‌ها

پروتکل انتقال ابر متن یا Hypertext Transfer Protocol (HTTP) یک پروتکل کلاینت-سرور (Web browser – Web Server) برای انتقال اطلاعات است. در این پروتکل، اطلاعاتی که از طرف مشتری/کلاینت به سرور ارسال می‌شود را یک درخواست یا Request و اطلاعاتی که از طریق سرور به کلاینت ارسال می‌گردد را یک پاسخ یا Response می‌نامند.پاسخی که توسط کلاینت دریافت می‌شود از طریق یک کد وضعیت ۳ رقمی ارسال می‌شود که عدد اول آن از ۱ تا ۵ است. بیشتر اوقات به کدهای ۱ تا ۳ توجه چندانی نمی‌شود چرا که خطاهای مهم در کد وضعیت‌های ۴ و ۵ قرار دارد. در زیر می‌توانید هر پنج عدد و توضیحات مربوط به آن‌ها را مشاهده کنید:کدهایی که با عدد ۱ شروع می‌شوند حاوی پاسخ‌های آگاهی بخشی یا Informational Responses هستند.کدهایی که با عدد ۲ شروع می‌شوند را کدهای وضعیت موفقیت آمیز یا Successful Responses می‌نامند.کدهایی که با عدد ۳ شروع می‌شوند شامل پیام‌های تغییر مسیر یا Redirection Messages می‌شوند.کدهایی که با عدد ۴ شروع می‌شوند شامل خطاهایی هستند که مربوط به کلاینت هستند.کدهایی که با عدد ۵ شروع می‌شوند شامل خطاهایی هستند که مربوط به سرور هستند.همانطور که گفته شد در این مقاله ما در ارتباط با دو کد وضعیت ۴ و ۵ صحبت خواهیم کرد و خطاهای عمومی مربوط به این دو را بررسی می‌کنیم. راه‌حل‌هایی که در این مقاله بررسی خواهیم کرد راه‌حل‌های کلی هستند که در بیشتر مواقع به طور دقیق پاسخ داده اند اما ممکن است در برخی مواقع نیز راهگشا نباشند.درخواست خراب یا Bad Request با کد وضعیت 400کد وضعیت ۴۰۰ زمانی توسط سرور ارسال می‌شود که درخواست ارسال شده توسط کلاینت برای سرور نامعتبر و یا غیر قابل درک باشد. چند دلیل عامیانه که باعث می‌شوند این خطا اتفاق بیافتد عبارت است از خطاهای زیر:وب آدرس اشتباه و غیر معتبراستفاده از کوکی غیر معتبر یا منقضیآپلود فایلی که به لحاظ حجمی توسط سرور مجاز نیستبرای حل کردن این مشکل ما می‌توانیم چند راهکار زیر را در نظر بگیریم:بررسی وب آدرس درخواستی به لحاظ صحت و وجودپاک کردن کش مربوط به DNSپاک کردن کوکی و کش مربوط به مرورگرکم کردن حجم یا فشرده سازی فایلی که قصد آپلود آن را داریداحراز هویت نامعتبر یا Unauthorized با کد وضعیت 401زمانی که برای انجام کاری سرور شما را مجبور به انجام دادن عملیات احراز هویت می‌کند و شما این کار را به درستی انجام نمی‌دهید این خطا اتفاق می‌افتد. به صورت کلی خطای 401 زمانی اتفاق می‌افتد که یکی از مشکلات زیر رُخ بدهد:نام کاربری و رمز عبور غیر معتبردرخواستی که توسط سرور رد شده و یا غیر معتبر خوانده شودکلاینتی که از طرف سرور برای انجام عملیات احراز هویت و... محدود شده باشدبرای حل کردن این مشکل ما می‌توانیم چند راهکار زیر را در نظر بگیریم:بررسی کنید که در آدرس درخواستی نهایی شما همه چیز درست باشدحتما درستی نام کاربری و رمز عبور خود را بررسی کنیدکش DNS را پاک کنیدکوکی مرورگر را پاک کنیدعملیات لاگ‌-این کردن را از اول شروع کنیدممنوع یا Forbidden با کد وضعیت 403کد ممنوع یا 403 زمانی اتفاق می‌افتد که سرور در ارائه پاسخ دقیق به یک کلاینت شناخته شده شکست بخورد. دلایلی مانند مجوز دسترسی یا محدود کردن کلاینت از طرف خود سرور از دلایل اصلی اتفاق افتادن چنین کد وضعیتی است. در زیر می‌توانید دلایل کلی برای این خطا را مشاهده کنید:محتوای منبع درخواستی خصوصی بوده و سرور اجازه دسترسی را نمی‌دهدکلاینت به صورت مشخص از دسترسی پیدا کردن به بخشی از اطلاعات منع می‌شودمحتوای درخواستی تنها توسط گروه خاصی از کاربران (بسته به مجوز دسترسی، موقعیت مکانی (مثالا اگر یک کشور تحریم باشد و نتواند از خدمات یک وبسایت یا سرویس استفاده کند) و...)دسترسی آدرس IP یک کلاینت ممنوع شده استبرای حل کردن این مشکل ما می‌توانیم چند راهکار زیر را در نظر بگیریم:از صحت آدرس درخواستی اطمینان حاصل کنیدکوکی و کش مرورگر خود را پاک کنیدممکن است به دلیل بروزرسانی‌های وبسایت مشکلاتی غیر منتظره پیش بیاید پس صبر کرده و در زمان دیگری مجددا درخواست کنیدمطمئن شوید که شما مجوز دسترسی به قسمت مورد نظر را داریددر نهایت می‌توانید با فراهم کننده سرویس مورد نظرتان صحبت کنید و علت را از وی جویا شویدپیدا نشد یا Not Found با کد وضعیت 404شناخته شده‌ترین کد وضعیتی که بیشتر ما با آن مواجه شده‌ایم کد وضعیت ۴۰۴ است. زمانی که کلاینت یک درخواست به سرور ارسال می‌کند و سرور نمی‌تواند برای آن درخواست محتوایی پیدا کند این کد وضعیت نشان داده خواهد شد. برای مثال اگر همین الان در قسمت جستجو وبسایت راکت عبارت «ماشین لامبورگینی» را جستجو کنید هیچ محتوایی روبرو نخواهید شد. دلایل کلی که می‌تواند باعث این کد وضعیت شود عبارت است از:محتوای درخواستی شما قبلا از وبسایت حذف شده استآدرسی که به دنبال آن هستید تغییر کرده و یا عملیات ریدایرکت به درستی انجام نمی‌شودکلاینت به دنبال آدرسی کاملا اشتباه استدامنه مربوطه کلا وجود نداردبرای حل کردن این مشکل ما می‌توانیم چند راهکار زیر را در نظر بگیریم:صفحه را رفرش کنیدآدرس را بررسی کرده و دوباره بنویسیددر موتورهای جستجوگر دقیق مانند گوگل عنوان مورد نظرتان را سرچ کنیداگر از وجود چنین محتوایی مطمئن هستید به کاوش‌تان ادامه بدهیدخطای داخلی سرور یا Internal Server Error با کد وضعیت 500زمانی که یک سرور نتواند موقعیتی که در آن قرار گرفته را مدیریت کند و به درستی برنامه ریزی نشده باشد با این مشکل روبرو می‌شود. دلایل متعددی می‌تواند باعث این موضوع شود که در زیر به مهمترین آن‌ها اشاره خواهد شد:افزایش حجم فایل‌ها در وبسایتافزایش حجم حافظه اصلی یا Memory و یا نسخه اشتباه زبان برنامه نویسی (در PHP این اتفاق معمولا زیاد اتفاق می‌افتد)خطای مجوز دسترسی برای فایل‌ها و دایرکتوری‌هااشتباه سینتکسی یا هر گونه خرابی دیگر در فایل .htaccessاگر از وردپرس استفاده می‌کنید احتمالا یک پوسته یا پلاگین شما باعث مشکل شده استمشکلات موقت کانکشن سروربرای حل کردن این مشکل ما می‌توانیم چند راهکار زیر را در نظر بگیریم:بروزرسانی صفحه مرورگرپاک کردن کش و کوکی مرورگرتنظیم مجدد دسترسی‌ها و برگشت آن‌ها به حالت پیشفرضبروزرسانی نسخه PHPبرگشت به آخرین نسخه فایل پشتیبانیرفع عیب کردن فایل .htaccessدر وردپرس غیر فعال کردن آخرین پلاگین نصب شدهگذرگاه خراب یا Bad Gateway با کد وضعیت 502کد وضعیت ۵۰۲ زمانی اتفاق می‌افتد که سرور پاسخ غیر معتبری را از یک سرور دیگر دریافت می‌کند. این حالت زمانی اتفاق می‌افتد که سرور نقشی شبیه به پروکسی یا همان Gateway را ایفا می‌کند. در زیر می‌توانید چند دلیل که باعث این مشکل می‌شود را مشاهده کنید:ادغام و یا مهاجرت سرورترافیک بالا در سرورسرور در دست تعمیر باشدفایروال از انتقال اطلاعات جلوگیری می‌کندبرای حل کردن این مشکل ما می‌توانیم چند راهکار زیر را در نظر بگیریم:سعی کنید با یک مرورگر دیگر به وبسایت متصل شویدDNS Server را تغییر دهیدکل سرور را ریستارت کنیددر دسترس نبودن سرویس یا Service Unavailable با کد وضعیت 503کد وضعیت 503 زمانی دریافت می‌شود که سرور به صورت موقت نمی‌تواند یک درخواست را پردازش کند. دلیل این موضوع نیز این است که سرور در حال تعمیر شدن است. دو دلیل زیر از جمله دلایل اصلی این کد وضعیت هستند.تعمیرات و نگهداری سرور یا Server maintenanceسر ریز کردن سرور یا Server Overloadبرای حل کردن این مشکل ما می‌توانیم چند راهکار زیر را در نظر بگیریم:سرور را ریستارت کنیدزمان بندی‌های مربوط به نگهداری و تعمیر سرور را بررسی کنیدبروزرسانی خودکار سرور را غیر فعال کنیدپیکربندی فایروال را بررسی کنیدبه Logهای موجود نگاه بیاندازیداز نبود خطا در کدهای مربوط به سمت سرور مطمئن شویدتایم آوت گذرگاه یا Gateway Timeout با کد وضعیت 504زمانی که یک سرور به عنوان پروکسی عمل کرده و منتظر دریافت پاسخ از یک سرور دیگر است یک مدت زمان برای دریافت این پاسخ در نظر گرفته می‌شود، اگر سرور مبدا در بازه زمانی تعریف شده نتواند پاسخی را دریافت بکند با کد وضعیت 504 مواجه می‌شود. از جمله دلایلی که می‌تواند باعث این وضعیت شود می‌توان به موارد زیر اشاره کرد:مشکلات ارتباطیتغییرات سرور (تغییر آی‌پی آدرس‌ها)تغییرات در DNSاشتباه در پیکربندی فایروالخطا در اتصال به شبکهبازه زمانی تعریف شده از میزان زمان مورد نیاز برای پردازش کمتر استبرای حل کردن این مشکل ما می‌توانیم چند راهکار زیر را در نظر بگیریم:ارتباط سرور با شبکه جهانی را بررسی کنیدتمام تغییرات DNS را بررسی کنیدپیکربندی فایروال را بررسی کنیدبازه زمانی Gateway timeout را افزایش دهیدبه Logها نگاه بیاندازید و کدهای سمت سرور را بررسی کنیددر پایاندر این مطلب از وبسایت راکت سعی کردیم تا شما را با مهمترین کدهای وضعیتی HTTP آشنا کنیم. امیدواریم که این مقاله برای‌تان مفید بوده باشد. در صورت داشتن هرگونه سوالی در ارتباط با این موضوع می‌توانید از طریق قسمت دیدگاه آن را با ما به اشتراک بگذارید.