آموزش شبکه 3

HTTP یک پروتکل با قابلیت های فراوان
HTTP
،‌ پروتکلی با قابلیت های فراوان است که علیرغم برخی محدودیت ها ، دارای سابقه درخشانی در  عرصه شبکه های کامپیوتری ( اینترانت ، اینترنت )  است .
 

HTTP پروتکلی ‌است که امکان ارتباط بین سرویس گیرندگان و سرویس دهندگان وب را فراهم می نماید .
یک سرویس دهنده وب در واقع  به عنوان یک سرویس دهنده HTTP  نیز ایفای وظیفه می نماید .

زمانی که مرورگر وب درخواست یک صفحه را از سرویس دهنده وب می نماید، در واقع یک HTTP request  را ارسال و  سرویس دهنده وب نیز پاسخ آن را با یک HTTP response  خواهد داد  . یک پیام HTTP ، یک درخواست ( request ) و یا پاسخ ( response ) است که از یک ساختار خاص تبعیت می نماید .
HTTP  به یک پروتکل خاص لایه حمل وابستگی نداشته و عموما" از پروتکل TCP استفاده می نماید (پورت شناخته شده 80 ) .

 کدهای وضعیت همانند بسیاری از پروتکل ها ، پروتکل  HTTP بر اساس یک مدل سرویس گیرنده - سرویس دهنده کار می کند .  کدهای وضعیت توسط تعداد زیادی از پروتکل های لایه application استفاده می گردد و می توان آنان را به پنج گروه عمده تقسیم نمود . جدول زیر گروه های پنج گانه کدهای وضعیت  را در ارتباط با پروتکل HTTP  نشان می دهد .

عملکرد

کد

 اطلاع رسانی برای استفاده در آینده

1XX

 انجام موفقیت آمیز تراکنش 

2XX

 راهنمائی مجدد

3XX

 بروز خطاء سمت سرویس گیرنده

4XX

 بروز خطاء سمت سرویس دهنده

5XX

 هر یک از پنج گروه فوق، دارای کدهای وضعیت زیر مجموعه ای می باشند که بیانگر جزئیات عملیات است . جدول زیر برخی از کدهای وضعیت هر یک از گروه های پنج گانه فوق را در ارتباط با پروتکل HTTP نشان می دهد .

عملکرد

کد وضعیت

 تراکنش با موفقیت انجام شده است

200

 دستور POST با موفقیت انجام شده است

201

 درخواست ارسالی دریافت گردید.

202

 منبع درخواستی در مکان های مختلفی پیدا شده است

300

 منبع درخواستی به صورت دائم منتقل شده است

301

 منبع درخواستی به صورت موقت  منتقل شده است

302

 درخواست نامناسب از جانب سرویس گیرنده

400

 درخواست غیرمجاز

401

 منبع درخواستی پیدا نگردید

404

 بروز خطاء بر روی سرویس دهنده

500

 متد استفاده شده ، پیاده سازی نشده است

501

 درخواست های سرویس گیرندگان  و دستورات  سرویس گیرندگان وب به منظور استفاده از خدمات سرویس دهندگان وب از مجموعه پتانسیل های ارائه شده ( دستورات )  توسط پروتکل HTTP استفاده می نمایند :

  • GET : سرویس گیرنده وب درخواست یک منبع موجود بر روی سرویس دهنده وب را می نماید .

  • POST : سرویس گیرنده وب اطلاعاتی را برای سرویس دهنده وب ارسال می نماید .

  • PUT : سرویس گیرنده وب یک مستند جایگزین را برای سرویس دهنده وب ارسال می نماید .

  • HEAD : سرویس گیرنده وب اطلاعات  خاصی را در ارتباط با یک منبع موجود بر روی سرویس دهنده  درخواست می نماید ( عدم نیاز به خود منبع ) 

  • DELETE : سرویس گیرنده وب درخواست حذف یک سند موجود بر روی سرویس دهنده را می نماید .

  • TRACE : سرویس گیرندگان وب ، پراکسی مربوط به خود را تعریف می نمایند . از متد فوق اغلب در موارد اشکال زدائی استفاده می گردد .

  • OPTIONS : سایر پتانسیل های موجود به منظور کار بر روی یک سند توسط یک سرویس گیرنده وب درخواست می گردد .

  • CONNECT : سرویس گیرنده وب به عنوان یک پراکسی به یک سرویس دهنده HTTPS متصل می گردد .

در اغلب موارد صرفا" از متد‍ GET و در برخی موارد از HEAD استفاده می گردد ( در صورت اشکال زدائی یک برنامه وب از تمامی امکانات فوق استفاده می شود ) .

مراحل ایجاد یک تراکنش   یک سرویس گیرنده وب قبل از این که بتواند با یک سرویس دهنده وب داده ئی را مبادله نماید ، می بایست با آن ارتباط برقرار نماید . بدین منظور از پروتکل TCP/IP استفاده می گردد . همانگونه که اشاره گردید سرویس گیرنده و سرویس دهنده وب برای ارسال یک درخواست و پاسخ به آن از پروتکل HTTP استفاده نموده و   ارتباط ایجاد شده بین خود را  صرفا" برای یک تراکنش نگهداری می نمایند ( HTTP یک پروتکل Stateless است ) .
فرآیند ایجاد یک تراکنش بین سرویس گیرنده و سرویس دهنده وب را می توان در چهار مرحله زیر خلاصه نمود:

  •  مرحله اول ، برقراری ارتباط : در ابتدا می بایست یک ارتباط و یا اتصال مبتنی بر پروتکل  TCP/IP  بین یک سرویس دهنده و یک سرویس گیرنده وب ایجاد گردد .  به منظور تشخیص نوع پروتکل استفاده شده  ، برنامه ها از یک عدد منحصر بفرد با نام  شماره پورت استفاده می نمایند .( پروتکل FTP از پورت 21 ، پروتکل Telnet از پورت 32 ، پروتکل SMTP از پورت 25 ، پروتکل HTTP از پورت 80 ) .

  • مرحله دوم : ‌ایحاد و یا صدور یک درخواست توسط سرویس گیرنده

  • مرحله سوم : ‌پاسخ سرویس دهنده به درخواست سرویس گیرنده

  • مرحله چهارم ،‌ خاتمه و یا توقف ارتباط : سرویس دهنده مسئولیت خاتمه ارتباط TCP با سرویس گیرنده وب را پس از پاسخ به درخواست سرویس گیرنده برعهده دارد . به منظور برخورد با مسائل غیرقابل پیش بینی ، هم سرویس گیرنده و هم سرویس دهنده می بایست قادر به مدیریت یک ارتباط باشند . مثلا" پس از فعال نمودن دکمه stop در مرورگر ، می بایست به ارتباط ایجاد شده توسط سرویس گیرنده خاتمه داده شود