2 مهر 1398
شاید شما هم تا به حال به هنگام وارد کردن آدرس یک سایت با اعدادی روبهرو شده باشید.
اصطلاحا به این اعداد، کدهای اعلام وضعیت HTTP میگویند.
در این مقاله ما این کدها را تحت عنوان “انواع خطاهای HTTP” به شما معرفی میکنیم.
بهطور کلی انواع خطاهای HTTP را به پنج دسته تقسیم میکنند:
این کدها، کدهای پاسخ موقت نام دارند و به صورت زیر تقسیم میشوند:
– کد 100 (ادامه): سرور درخواست مرورگر را دریافت کرده و ارسال اطلاعات میتواند ادامه پیدا کند.
– کد 101 (تعویض پروتکل): درخواست مرورگر از سرور برای تعویض پروتکل.
اگر این تعویض از نظر سرور مفید باشد پذیرفته میشود.
– کد 102 (در حال پردازش): برای زمانی است که سرور در حال پردازش است و از قطع ارتباط به دلیل به پایان رسیدن حداکثر زمان (time out)، جلوگیری میشود.
– کد 103 (ایست بازرسی): سرور در حال بازخوانی درخواست کاربر برای استفاده از متد PUT یا POST و حذف درخواست اضافی میباشد.
این سری از کدها عموما در معرض نمایش کاربران قرار نمیگیرند.
سرور با این کدها با سیستم کاربران در ارتباط است تا انتقال اطلاعات بهدرستی صورت پذیرد.
این دسته را کدهای وضعیت موفقیت نامیده و به شرح زیر میباشند:
– کد 200 (موفقیتآمیز): درخواست مورد نظر به طور کامل انجامشده و موفقیتآمیز بوده است.
– کد 201 (ساحتهشده): اگر مرورگر درخواست ایجاد یک فایل جدید در سرور را داشته باشد و این کار با موفقیت انجام شود.
– کد 202 (موافقتشده): با درخواست کاربر موافقت شده اما عملیات مورد نظر به طور کامل انجام نشده است.
– کد 203 (اطلاعات نامعتبر): سرور درخواست کاربر را با موفقیت پردازش کرده است اما اطلاعاتی که نمایش میدهد نامعتبر بوده و ممکن است از یک منبع دیگر باشد.
– کد 204(بدون محتوا): درخواست کاربر با موفقیت پردازش شود اما محتوایی برای نمایش وجود نداشته باشد.
– کد 205 (بازنشانی محتوا): این کد همانند کد 204 است با این تفاوت که کاربر باید برای ادامه، درخواست خود را Reset کند. معمولا از این کد برای پاک کردن اطلاعات فرمهای وب استفاده میشود.
– کد 206 (محتوای جزئی): کد 206، برای حالتهایی که به فرض از امکاناتی نظیر ادامه دانلود(resume download) استفاده میکنیم کاربرد دارد؛ یعنی درخواست با موفقیت پردازش شده است اما محتوا به صورت جزئی نمایش داده خواهد شد.
کدهای سری 200 مربوط به سرور هستند و در صفحه مرورگر نمایش داده نخواهد شد.
برای مشاهده این کدها میتوانید از سایتهای آنالیز وب استفاده کنید.
به کدهای سری 300 کدهای تغییر مسیر یا ریدایرکت میگویند و عبارتنداز:
– کد 300 (انتخاب چندگانه): سرور برای درخواست واسط کاربری چند منبع را پیشنهاد میدهد(مثلا یک فایل با فرمتهای مختلف) و انتخاب یکی از آنها را به عهده مرورگر کاربر میگذارد.
انتخاب ممکن است به صورت خودکار نیز انجام شود.
– کد 301 (انتقال دائم): دریافت این کد از طرف سرور، به معنی انتقال همیشگی یک آدرس وب، به آدرسی دیگرمیباشد.
این کد، یکی از مهمترین کدها مخصوصا در علم سئو است.
– کد 302 (انتقال موقت یا پیدایش): درخواست صفحه مورد نظر شما به صورت موقت به صفحه جدیدی ریدایرکت خواهد شد.
– کد 303 (مشاهده منبع دیگر): کاربر باید برای دریافت درخواست خود به محل دیگری مراجعه کند.
درواقع همان کد 302 با تاکید بر متد “Get” میباشد.
– کد 304 (بدون تغییر یا اصلاح نشده): اگر کاربر درخواست مشاهده آخرین تغییرات را داشته و از آخرین باری که مشاهده کرده است تغییری داده نشده باشد، این کد را مشاهده میکند و صفحهای نمایش داده نخواهد شد.
– کد 305 (استفاده از پروکسی): کاربر زمانی میتواند از صفحه مورد نظر استفاده کند که از پروکسی استفاده کند.
– کد 306 (تعویض پروکسی): این کد مشابه کد 305 است با این تفاوت که درخواست مبنی بر تعویض پروکسی میباشد.
– کد 307 (انتقال موقت): این کد شبیه کدهای 302 و 303 میباشد با این تفاوت که انتقال نیاز به تایید کاربر دارد.
در این سری از کدها هم کاربر دخالت چندانی ندارد.
این کدها را، کدهای خطای سمت کاربر مینامند و شامل موارد زیر هستند:
اگر مفهوم تقاضای کاربر برای سرور مشخص نباشد این خطا رخ میدهد.
اگر درخواست نیاز به تاییدشدن و یا بررسی مجوز استفاده داشته باشد.(مثلا نیاز به Login باشد)
کاربر برای استفاده از قسمت مورد درخواست باید وجهی را بپردازد.
آنچه میخواهید ببینید و استفاده کنید برای شما غیرقابل دسترسی است.
این مورد معمولا بر اثر تحریمها و فیلترینگ رخ میدهد.
زمانی که سرور نتواند صفحه مورد نظر را بیابد و یا صفحه وجود نداشته باشد.
اگر از متدها به درستی استفاده نشود مثلا از Get در جایی استفاده شودکه از طریق Post نیاز به ارسال منابع داریم، این کد نمایش داده میشود.
معمولا در این مواقع متد مجاز نیز ارسال میشود.
کد 406 ممکن است به دلیل وجود کاراکترهای غیراستاندارد در درخواست ارسالی رخ دهد.
برخی از سرورها به دلایل امنیتی نیز ممکن است این کد را در پاسخ ارسال کنند.
به طور مثال ماژول “mod_security” در سرورهای “Apache” از پذیرفتن برخی آدرسهای وب (که از نظر امنیت، سرور آنها را مشکوک تشخیص دهد) خودداری کرده و پیام “Not Acceptable” دریافت خواهید کرد.
مانند کد 401 است و نیاز به تصدیق با پروکسی دارد.
انتظار سرور برای ارسال درخواست از سمت کاربر به پایان رسیده است.
تعارض بین دو درخواست کاربر روی یک منبع.
مثلا هنگام ویرایش یک فایل توسط دو نفر ممکن است این اتفاق رخ دهد.
این کد شبیه کد 404 عمل میکند.
اگر سرور احساس کند که کل منابع درخواستی برای همیشه از سرور حذف شده است آن را نشان میدهد.
در درخواستهایی که لازم است مقدار یا طول درخواست به سرور داده شود.
تا اندازه ارسال نشود، سرور هیچ پردازشی انجام نمیدهد.
در درخواست واسط کاربری مواردی ارسال شده است(به فرض متد استفاده شده)که منبع سرور از آن طریق قابل دسترس نیست و نتیجه بررسی اولیه سرور “false” شده است.
طول رشتههای درخواستی کاربر از حد مجاز سرور بیشتر است.
بیش از حد طولانی بودن آدرس وب (URI) درخواستی.
در این حالت سرور قادر به پردازش آدرس نیست.
ارسال فرمتی به همراه درخواست ارسالی(به فرض آپلود یک فایل یا تصویر) که از نظر سرور قابل پذیرش نیست.
سرور فرمت دیگری را پشتیبانی میکند.
بخشی از یک صفحه درخواستی کاربر برای سرور و پردازش آن قابل قبول نیست.
سربرگ های ارسالی کاربر با انتظارات سرور همخوانی ندارد.
این خطاها عموماً در صفحه مرورگر کاربران برای اطلاعدادن به آنها نمایش داده خواهد شد.
در این میان خطاهای 403 و 404 را معمولا کاربران زیاد مشاهده مینمایند.
این کدها را کدهای خطای سمت سرور مینامند و به دستههای زیر تقسیم میشوند:
– کد 500 (خطای داخلی سرور): وقوع یک خطای داخلی در سرور.
معمولا به دلیل نقص تنظیمات یا انجام بروزرسانی نرمافزاری یا سختافزاری رخ میدهد.
این کد را معمولا زمانی که میخواهند در سرور تغییراتی اعمال کنند و سرور از دسترس خارج میشود تنظیم مینمایند.
– کد 501 (اجرا نشده یا تکمیل نشده): سرور قادر به پردازش درخواست واسط کاربری نیست(معمولا به دلیل پشتیبانینشدن متد ارسالی یا نقص امکانات مورد نیاز).
– کد 502 (خطای Gateway): سرور همانند یک پروکسی یا درگاه از سرور بالا دستی خود پاسخی دریافت نکرده است.
این خطا معمولا با چند بار تلاش مجدد از سمت کاربر رفع خواهد شد.
– کد 503 (سرویس در دسترس نیست): غیرقابل دسترس بودن سرور به دلیل ترافیک زیاد(overload) یا انجام بروزرسانی.
معمولا این حالت موقتی بوده و پس از چند دقیقه یا چند ساعت رفع خواهد شد.
– کد 504 (وقفه در Gateway): همانند وضعیت 502 است ولی با این تفاوت که پاسخ از سرور بالا دستی را با تأخیر دریافت کرده است.
– کد 505 (عدم پشتیبانی از ورژن HTTP): ورژن HTTP مورد نظر در سرور پشتیبانی نمیشود.
– کد 511 (نیاز به تصدیق در شبکه): کاربر درخواست کننده قبل از درخواست باید در شبکه موجود شناسایی شده باشد.
این سری از انواع خطاهای HTTP معمولا داخل سرور رخ میدهد و بعضی از اوقات برای اطلاع کاربر از وضعیت در مرورگر نمایش داده خواهد شد.
علاوهبر موارد ذکر شده انواع خطاهای HTTP دیگری هست که به علت اهمیت کمتر آنها بیان نشد.
تمامی حقوق برای گیتی سرور محفوظ است.