پاسخ : آشنائی با پروتكل 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 است ) .
پاسخ : آشنائی با پروتكل Http
پروتكل HTTP : يك معماری سرويس گيرنده و سرويس دهنده
سرويس گيرنده وب ، مقادير خاصی را با اهداف كاملا" مشخص شده برای سرويس دهنده وب ارسال می نمايد ( حصول اطمينان از وجود يك زبان مشترك برای گفتگو بين سرويس گيرنده و سرويس دهنده وب ) . سرويس دهنده پس از بررسی اطلاعات ارسالی ، آنان را تفسير و متناسب با آن اطلاعاتی را برای سرويس گيرنده ارسال می نمايد . در معماری فوق يك نرم افزار در سمت سرويس گيرنده و به عنوان يك سرويس گيرنده وب ( نظير IE و يا Mozilla Firefox ) ايفای وظيفه می نمايد و در سمت سرويس دهنده يك نرم افزار به عنوان سرويس دهنده وب ( نظير : IIS و يا Apache ) وظايف تعريف شده خود را انجام می دهد.
سناريوی فوق مدل و يا معماری سرويس گيرنده - سرويس دهنده را در ذهن تداعی می نمايد ( معماری مبتنی بر درخواست و پاسخ ) .
پاسخ سرويس دهنده
شكل زير يك بسته اطلاعاتی HTTP از مبداء يك سرويس دهنده به مقصد يك سرويس گيرنده را نشان می دهد ( پاسخ سرويس دهنده ).
http://www.srco.ir/Articles/images/HTTPtip2.jpg
توضيحات :
جدول زير برخی اطلاعات ارسالی توسط سرويس دهنده را نشان می دهد .
به سرويس گيرنده اعلام می گردد كه :
*
سرويس دهنده وب از پروتكل HTTP نسخه 1 .1 استفاده می نمايد.
*
فايل درخواستی وی توسط سرويس دهنده پيدا شده است .
200 ، يك كد وضعيت است كه وضعيت پاسخ به درخواست را مشخص می نمايد .
HTTP/1.1 200 OK
مستند و يا فايل درخواستی سرويس گيرنده توسط يك پراكسی cache نخواهد شد و هدف آن صرفا" برای كاربر متقاضی فايل است .
Cache-Control:
private
فرمت ارسال فايل و يا مستند درخواستی به سرويس گيرنده وب اعلام می شود . در اين مورد خاص ، اطلاعات با فرمت text/html ارسال می گردند .
سرويس گيرنده وب دارای دانش لازم به منظور بررسی و نمايش اطلاعات با فرمت اشاره شده می باشد .
Content-type:
text/html
نوع سرويس دهنده و يا نرم افزار سرويس دهنده ( سرويس دهنده وب ) مشخص می گردد .
در اين مورد خاص ، سرويس دهنده وب Google نمايش داده شده است .
Server:
GWS/2.1
پروتكل HTTP نسخه شماره 1 .1 از ارسال اطلاعات به صورت chuncked حمايت می نمايد. در روش فوق ، بدنه يك پيام به منظور ارسال مجموعه ای از ماژول ها اصلاح می گردد . مسوليت مشخص كردن اندازه هر ماژول ارسالی بر عهده يكی از فيلدهای موجود در اين ساختار گذاشته می شود .
در صورت ارسال معمولی اطلاعات توسط پروتكل HTTP ، از يك فيلد با نام "Content-Length" به منظور مشخص نمودن حجم داده ارسالی،استفاده می گردد .
Transfer-Encoding: chunked
زمان و تاريخ سرويس دهنده وب مشخص می گردد.
Date:
Sat 30 Jul 2005 14http://webhostingtalk.ir/images/New-...ssive (20).gif50 GMT
تگ های HTML ارسالی توسط سرويس دهنده وب به مقصد سرويس گيرنده وب می باشند كه توسط سرويس گيرندگان وب ( نظير IE ) تفسير و نمايش داده می شوند .
با استفاده از گزينه view موجود در برنامه های مرورگر ، می توان تگ های HTML يك صفحه وب را مشاهده نمود .
<html><head><meta.http-equiv="content-type"