آشنائی با پروتكل HTTP ( بخش سوم )

در بخش اول و دوم با جايگاه پروتكل HTTP به منظور مبادله اطلاعات بين سرويس گيرندگان و سرويس دهندگان وب آشنا شديم . همچنين به اين موضوع اشاره گرديد كه پروتكل فوق ، همانند اغلب پروتكل های لايه application ، از معماری سرويس گيرنده - سرويس دهنده استفاده می نمايد .
در اين بخش به بررسی برخی پتانسل های ارائه شده توسط پروتكل HTTP خواهيم پرداخت .

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 در مرورگر ، می بايست به ارتباط ايجاد شده توسط سرويس گيرنده خاتمه داده شود .