HTTP

HTTP مخفف Hypertext Transfer Protcol است. این پروتکل برای ارتباط بین سیستم های توزیع شده و به عنوان پایه ای برای وب مدرن ساخته شده است. به عنوان یک توسعه دهنده وب باید اطلاعات قوی در مورد این پروتکل داشته باشیم.

در این مطلب نگاهی به پایه HTTP و کدهای ارسال شده در response میپردازیم.

 

پایه های HTTP

HTTP باعث میشود که بین کلاینت ها و هاست ها ارتباط برقرار شود و همچنین از ترکیبی از تنظیمات شبکه پشتیبانی میکند.

HTTP پروتکلی جهانی است. ارتباطات معمولا بر روی مدل TCP/IP انجام میشود ولی میتوان از مدل های دیگر نیز استفاده کرد و پورت پیشفرض TCP/IP 80 است اما میتوان از پورت های دیگر نیز استفاده کرد.

ارتباطات بین کلاینت ها و هاست از طریق درخواست/پاسخ (request/response) انجام میشود. کلاینت یک درخواست HTTP را آغاز میکند و سرویس مورد استفاده از طریق HTTP پاسخ را بازگشت میدهد.

نسخه حال حاظر این پروتکل HTTP/1.1 است

URLها

قلب ارتباطات وب محتوای درخواست (request) است که کلاینت آن را ارسال میکند که این درخواست از طریق URL یا Unifrom Resource Locators انجام میشود. URLها دارای ساختمان ساده ای هستند که میتوانید در عکس زیر آن را ببینید.

پروتکل معمولا HTTP است اما در اتصالات امن به HTTPS تغییر میکند. پورت نیز معمولا ۸۰ است اما میتوان مانند عکس بالا به صراحت آن را تغییر داد. resource path نیز آدرس فایل مورد نظر در سرور است.

معنی کدهای response

وقتی یک درخواست از کلاینت ایجاد و از طریق URL ارسال میشود, سرور جواب را همراه یک کد بازگشت میدهد. این کد نوع پاسخ سرور را میرساند. پروتکل HTTP کدهای خاصی را برای هر نوع پاسخ درنظر گرفته است.

۱xx: پیام های اطلاعاتی (Informational Messages)

این کلاس از کدها در HTTP/1.1 ایجاد شده است. سرور میتواند کد Expect: 100-continue را به کلاینت ارسال کند که به معنی این است که این درخواست قبلا ارسال شده است.

۲xx: موفقیت آمیز (Successful)

این کلاس از کدها به این معنی است که درخواست کلاینت به درستی پردازش شده است. بیشترین کد رایج ۲۰۰ OK است.

کد ۲۰۲: درخواست پذیرفته شده است اما ممکن است منابع درخواست شده در response نباشد.

کد ۲۰۴: بدون محتوا: هیچ محتوایی در قسمت body response وجود ندارد.

کد ۲۰۵: رفرش محتوا: به کلاینت نشان میدهد که سند را رفرش کند.

کد ۲۰۶: محتوای ناقص: به کلاینت می گوید که response تنها شامل بخشی از محتوا است.

۳xx: تغییر مسیر (Redirection)

این کلاس از کدها نشان دهنده این است که کلاینت باید یک اقدام اضافه دیگری نیز انجام دهد. اغلب برای تغییر مسیر به یک URL دیگر استفاده میشود.

کد ۳۰۱: انتقال دائمی: منابع از این پس در یک URL جدید هستند.

کد ۳۰۲: انتقال موقت: منابع به طور موقت در یک URL جدید قرار گرفته اند. مقدار Location در response شامل URL موقتی است.

کد ۳۰۴: اصلاح نشده: سرور مشخص میکند که اطلاعات انتقال داده نشده است اما کلاینت باید از نسخه cash شده سایت استفاده کند.

۴xx: خطای درخواست (Client Error)

سرور زمانی که تشخیص بدهد که کلاینت دچار خطا در ارسال درخواست شده است از این کلاس از کدها استفاده میکند. کد رایج در این کلاس ۴۰۴ Not Found است که فکر میکنم همگی با آن آشنا هستیم. این کد نشان دهنده این است که آدرس درخواستی در سرور موجود نیست.

کد ۴۰۰: درخواست بد: دریافت درخواست ناقص بود

کد ۴۰۱: غیر مجاز (Unauthorized): درخواست نیاز به شناسایی دارد. به این معنی که ابتدا باید با استفاده از Username و Password وارد سایت شده و شناسایی شوید سپس درخواست را ارسال کنید.

کد ۴۰۳: ممنوع (Forvidden): سرور دسترسی به این منبع را قطع کرده است.

کد ۴۰۵: متد ارسالی درست نیست (Method Not Allowed): متد ارسالی درست نیست و یا اینکه سرور از آن پشتیبانی نمیکند.

کد ۴۰۹: برخورد (Conflict): سرور نمیتواند درخواست را تکمیل کند زیرا یک کلاینت در حال تغییر منبع است.

۵xx: خطای سرور (Server Error)

این کلاس از خطاها زمانی رخ میدهد که سرور دچار خطا شده باشد. کد رایج در این کلاس ۵۰۰ Internal Server Error است.

کد ۵۰۱: پیاده سازی نشده (Not Implemented): سرور هنوز برای پشتیبانی از این درخواست پیکربندی نشده است.

کد ۵۰۳: بدون دسترس (Server Unavailable): معمولا زمانی زخ میدهد که سرور دچار خرابی شده است و یا دچار timeout شده است.

 

آیا این پاسخ به شما کمک کرد؟

 پرینت این مقاله

در همین زمینه

خدمات توزيع

خدمات توزيع عملكرد لازم در همبندی‌های مبتنی بر سيستم توزيع را مهيا می‌سازد. معمولاً...

ويژگی‌های سيگنال‌های طيف گسترده

عبارت طيف گسترده به هر تكنيكی اطلاق می‌شود كه با استفاده از آن پهنای باند سيگنال ارسالی...

عملکرد تورنت

مقدمه       سرويس دهنده هاي اينترنتي بر دو نوع هستند که کاربران براي...

امنیت شبکه و الگوریتمی جهت تهیه الگوی امنیتی شبکه

در چند دهه ابتدایی پیدایش ، از شبکه های کامپیوتری بیشتر توسط  پژوهشگران دانشگاه و برای...

پیمایش موقعیت در شبکه های حسگر بی سیم-قسمت سوم

جزئيات پروتكل: در زير ما پروتكل رديابي خود را رسماً (صريحاً) توسعه مي دهيم. از آنجا كه ممكن...