گاهی اوقات وقتی سعی میکنید از یک صفحه وب بازدید نمایید، با پیام خطای HTTP مواجه میشوید. این پیامی از وب سرور می باشد که نشان میدهد مشکلی پیش آمده است. در برخی موارد دلیل بروز خطا، اشتباهی می باشد که شما انجام دادهاید اما اغلب، خطا از سمت سایت است. برای هر نوع خطایی یک کد خطای HTTP اختصاصی وجود دارد. اگر سعی کنید به صفحهای که در یک وبسایت وجود ندارد دسترسی پیدا نمایید، منجر به خطای ۴۰۴ میشود.
رایجترین خطاهای HTTP که افراد هنگام وبگردی با آنها مواجه میشوند، در این مقاله بررسی خواهد شد.
نظر گوگل در مورد خطاهای رایج HTTP
از گوگل "5 خطای رایج HTTP" پرسیده شد و پاسخ زیر را ارائه کرد:
تصویر(1)
این نتیجهگیری بر اساس گزارش میلیونها کاربر وب است که عنوان کرده اند با چه خطاهایی بیشتر برخورد میکنند. افرادی که هنگام بازدید از وبسایتها با خطا مواجه میشوند، تمایل دارند در مورد آن خطا بیشتر بدانند. آنها احتمالا برای این کار به معروفترین موتور جستجو مراجعه میکنند. به همین دلیل، آمار جستجوی گوگل میتواند ایده خوبی در مورد مقایسه رایجترین کدهای خطای HTTP بدهد. این ابزار برای تخمین «محبوبیت» عبارات جستجو عالی است.
از طریق Google Insights for Search، پنج کد خطای HTTP رایج ذکر شده در بالا بررسی و با هم مقایسه شدند. برای این مقایسه، موقعیت «worldwide» انتخاب شد. دوره زمانی انتخاب شده، شامل تمام جستجوها در سال ۲۰۲۳ بود و نوع جستجو به وب محدود شد. پس از این بررسی دقیق، نتایج زیر به دست آمد:
تصویر(2)
5 خطای اصلی از نظر گوگل
تصویر(3)
1. خطای HTTP از نوع 403 (Forbidden)
این خطا شبیه به خطای ۴۰۱ است اما به تفاوت بین unauthorized و forbidden توجه کنید. در چنین مواردی هیچ دسترسی به مسیر موردنظر وجود ندارد. این خطا زمانی رخ می دهد که برای مثال سعی میکنید به پوشه ای ممنوعه در یک وبسایت دسترسی پیدا نمایید.
برای رفع خطای HTTP 403، کاربر یا مشتری باید موارد زیر را انجام دهد:
- اطمینان حاصل نماید که در صورت نیاز، به سایت و سامانه موردنظر ورود کرده باشد و سپس به مسیر موردنظر دسترسی پیدا کند.
- مطمئن شود که مجوزهای لازم برای دسترسی به منبع را دارد.
- اگر به محدودیت بر اساس IP مشکوک است، اطمینان حاصل کند که آدرس IP او محدود نشده باشد.
2. خطای HTTP از نوع 401 (Unauthorized)
این خطا زمانی رخ میدهد که بازدیدکننده یک وبسایت سعی میکند به صفحهای با دسترسی محدود وارد شود اما مجوز لازم برای این کار را ندارد. دلیل این خطا معمولا تلاش ناموفق برای ورود به حساب کاربری است. با این حال، دلایل دیگری نیز میتوانند باعث بروز این خطا شوند:
ورود به حساب کاربری: زمانی که کاربری بدون اینکه وارد حساب کاربری خود شود سعی میکند به یک منبع حفاظتشده دسترسی پیدا نماید، سرور با یک خطای ۴۰۱ پاسخ میدهد و از کاربر میخواهد تا اطلاعات کاربری خود را وارد کند.
نیاز به تایید اعتبار کاربر: این اتفاق زمانی میافتد که کاربر درخواستی برای یک منبع خاص از سرور ارسال میکند بدون اینکه هیچ تایید اعتباری انجام دهد. در این مورد، سرور با نشان دادن خطای 401 به کاربر اعلام میکند که برای دریافت منبع درخواستی باید خودش را تایید اعتبار نماید. این خطا میتواند زمانی رخ دهد که کاربر نیاز داشته باشد تا یک نام کاربری و رمز عبور یا شکل دیگری از توکن تایید اعتبار را ارائه دهد.
عدم وجود اعتبارنامه: دلیل رایج دیگر، عدم ارائه اعتبارنامههای معتبر توسط کاربر است. این اعتبارنامهها معمولا در هدر درخواست فرستاده میشوند. برای مثال، می توان روشهایی مانند تایید اعتبار اولیه (نام کاربری و رمز عبور)، توکن حامل (OAuth 2.0) یا کلیدهای API را نام برد.
اعتبارنامههای نامعتبر: در برخی موارد حتی زمانی که کاربر اعتبارنامهها را ارائه میدهد، ممکن است نامعتبر یا منقضی شده باشند. سپس سرور با یک خطای ۴۰۱ پاسخ خواهد داد. در این مورد، کاربر باید مجددا تایید اعتبار کند و درخواست را با اعتبارنامههای معتبر ارسال نماید.
مجوزهای ناکافی: گاهی اوقات حتی با داشتن اعتبارنامههای معتبر، سرور ممکن است یک خطای ۴۰۱ را برگرداند زیرا کاربر مجوزهای صحیح یا لازم برای دسترسی به آن منبع را ندارد. برای اینکه بتوان از این مشکل عبور کرد، کاربر باید مجوزهای لازم جهت دسترسی به منبع موردنظر را درخواست نماید.
۳. خطای HTTP ۴۰۴ (پیدا نشد)
اکثر افراد با این خطا مواجه شده اند. خطای ۴۰۴ زمانی رخ میدهد که سعی میکنید به منبعی روی یک سرور (معمولا صفحه وب) دسترسی پیدا نمایید اما وجود ندارد. برخی از دلایل این اتفاق میتواند شامل لینک خراب، تایپ اشتباه URL یا ریدایرکت صفحه درخواستی توسط مدیر وبسایت باشد.
برخی از دلایل رایج برای این خطا عبارتند از:
- آدرس اینترنتی (URL) درخواستی کاربر غلط املایی دارد یا حاوی اشتباه تایپی است.
- منبع درخواستی حذف شده یا به مکان دیگری منتقل شده است.
- پیکربندی سرور اشتباه می باشد و این موضوع مانع از ارائه منبع درخواستی میشود.
- منبع هرگز روی سرور وجود نداشته است.
برخی تکنیکهای رایج میتوانند به حل سریع خطای HTTP ۴۰۴ کمک کنند:
- مجددا URL را بررسی نمایید تا مطمئن شوید هیچ اشتباه تایپی وجود ندارد.
- مطمئن شوید که منبع درخواستی واقعا روی سرور وجود دارد و تحت آدرس اینترنتی مشخص شده قابل دسترسی است.
- اگر منبع جابجا شده باشد، URL را بروزرسانی نمایید.
- اگر خطا همچنان در وبسایت وجود دارد، مالک یا مدیر وبسایت باید اطمینان حاصل کند که پیکربندی سرور آنها درست است و هر منبع حذف یا جابجا شده به یک آدرس معتبر هدایت می شود.
اگر خطاهای ۴۰۴ را در وبسایت خود به درستی مدیریت نکنید، این موضوع میتواند تاثیر منفی روی رتبه وبسایت در موتورهای جستجو داشته باشد. همچنین میتواند کل تجربه کاربری وبسایت شما را با مشکل مواجه کند. اطمینان حاصل نمایید یک صفحه اختصاصی «Not Found» برای کاربران خود ایجاد کرده اید که نشان می دهد صفحه وب موردنظر در دسترس نیست.
4. خطای HTTP ۴۰۰ (Bad Request)
تصویر(4)
خطای HTTP ۴۰۰ اساسا یک پیام خطا از وب سرور می باشد که به کاربر میگوید دسترسی برنامه شما (برای مثال مرورگر) نادرست بوده یا اینکه درخواست در مسیر به نحوی خراب شده است. این اتفاق میتواند به دلیل یک یا چند مورد از دلایل زیر رخ دهد:
- Malformed Request: رایجترین دلیل برای خطای 400 Bad Request این است که درخواست اصطلاحا Malformed می باشد یعنی درخواست HTTP کاربر با استانداردهای پروتکل HTTP مطابقت ندارد. این مورد میتواند به دلایل زیر باشد:
- هدرها گمشده یا به درستی قالببندی نشدهاند.
- پارامترهای درخواست نامعتبر بوده یا گمشدهاند.
- متدهای HTTP پشتیبانی نشده (برای مثال، استفاده از POST در حالی که انتظار میرود GET باشد).
- طول یا نوع محتوا به درستی مشخص نشده است.
- نگرانیهای امنیتی: سرور ممکن است از خطای ۴۰۰ برای محافظت در برابر تهدیدات امنیتی احتمالی استفاده کند. به عنوان مثال، درخواستهایی با URL های بسیار طولانی میتوانند برای حملات denial-of-service به کار روند.
برخی تکنیکهای رایج میتوانند به حل سریع خطای HTTP ۴۰۰ کمک کنند:
- اطمینان حاصل کنید که syntax درخواست با استاندارد HTTP مطابقت دارد.
- مطمئن شوید که تمام هدرها و پارامترهای موردنیاز وجود دارند و به درستی قالببندی شدهاند.
- اطمینان حاصل کنید که از متد HTTP صحیح (GET, POST, PUT, DELETE و غیره) برای دسترسی به منبع استفاده میشود.
5. خطای داخلی سرور (Internal Server Error) HTTP ۵۰۰
همانطور که از شرح این خطا مشخص است، این یک پیام خطای کلی می باشد و زمانی رخ میدهد که وب سرور با نوعی مشکل داخلی مواجه میشود. برای مثال، وب سرور ممکن است بیش از حد مشغول باشد و نتواند به درستی درخواستها را مدیریت کند.
دلایل مختلفی وجود دارد که ممکن است باعث بروز خطای HTTP ۵۰۰ شود، از جمله:
- باگهای نرمافزاری یا خطاهای برنامهنویسی در کد سرور
- زیرساخت سرور دارای بار پردازشی بالایی بوده یا با کمبود منابع مواجه است.
- مشکلات مربوط به پیکربندی سرور
- مشکلات اتصال به پایگاه داده
- وقوع رویدادهای غیرمنتظره یا خرابی در برنامههای سرور
برطرف کردن خطای HTTP ۵۰۰ معمولا نیازمند عیبیابی و اشکالزدایی در سمت سرور است. اقداماتی که میتوان انجام داد عبارتند از:
- بررسی لاگ های سرور برای یافتن اطلاعات دقیق خطا
- شناسایی و رفع باگهای نرمافزاری یا مشکلات پیکربندی
- اطمینان از اینکه زیرساخت سرور به درستی پیکربندی شده و منابع کافی در اختیار دارد.
- رسیدگی به هرگونه مشکل خاص در پایگاه داده یا برنامههای کاربردی
راهنمای کدهای خطای HTTP
هنگام مواجهه با خطاهای HTTP، یک چک لیست میتواند برای اطلاع از اینکه با کدام خطای HTTP سروکار دارید و معنای واقعی آن چیست، مفید باشد.
در نظر داشته باشید که هر کد وضعیت HTTP به شکل 2XX نشان دهنده خطا نیست بلکه یک درخواست و پاسخ موفق می باشد. میتوانید همین مورد را برای 3xx نیز در نظر بگیرید، با این حال، از دیدگاه کاربر نهایی ممکن است مانند یک کد خطا به نظر برسد. هر کد وضعیتی به شکل 4xx یا 5xx قطعا حاکی از خطا می باشد.
در ادامه چک لیستی وجود دارد که به طور خلاصه خطاها را توضیح می دهد:
نکات تکمیلی در مورد خطاهای وبسایت
لازم به ذکر می باشد که تمام پیغامهای خطای بالا توسط وب سرور به بازدیدکننده گزارش میشوند. این ماهیت خطاهای HTTP است و از وب سروری که به آن دسترسی پیدا میکنید، نشأت میگیرند. بدیهی است که اگر نتوانید به یک وبسایت دسترسی پیدا کنید (برای مثال، اگر شبکه قطع باشد) هیچ خطای HTTP دریافت نخواهید کرد.
سخن پایانی
همانطور که در این مقاله ذکر شد، خطاهای HTTP میتوانند مانع از عملکرد صحیح وبسایتها و برنامههای آنلاین شوند. آشنایی با رایجترین این خطاها و علل آنها، به شما کمک میکند تا سریعتر و کارآمدتر آنها را عیبیابی و رفع کنید. ناتوانی در تشخیص و نحوه رفع این خطاها می تواند رتبه سایت را در موتورهای جستجو به شدت تحت تاثیر قرار دهد.