در اینترنت همانند سایر شبکه های کامپیوتری از پروتکل های متعدد و با اهداف مختلف استفاده می گردد. هر پروتکل از یک ساختار خاص برای ارسال و دریافت اطلاعات (بسته های اطلاعاتی ) استفاده نموده و ترافیک مختص به خود را در شبکه ایجاد می نماید . HTTP ( برگرفته از Hyper Text Transfer Protocol ) ، یکی از متداولترین پروتکل های لایه application است که مسئولیت ارتباط بین سرویس گیرندگان و سرویس دهندگان وب را برعهده دارد .
در ادامه با پروتکل فوق بیشتر آشنا خواهیم شد.
پروتکل HTTP چیست ؟
دنیای شبکه های کامپیوتری دارای عمری چند ساله است و بسیاری از کاربران ، ضرورت استفاده از شبکه را همزمان با متداول شدن اینترنت در اوایل سال 1990 دریافتند . عمومیت اینترنت، رشد و گسترش شبکه های کامپیوتری را به دنبال داشته است . اینترنت نیز با سرعتی باورنکردنی رشد و امروزه شاهد ایجاد ده ها میلیون وب سایت در طی یک سال در این عرصه می باشیم .
تمامی وب سایت های موجود بر روی اینترنت از پروتکل HTTP استفاده می نمایند . با این که پروتکل HTTP با استفاده از پروتکل های دیگری نظیر IP و TCP ماموریت خود را انجام می دهد ، ولی این پروتکل HTTP است که به عنوان زبان مشترک ارتباطی بین سرویس گیرنده و سرویس دهنده وب به رسمیت شناخته شده و از آن استفاده می گردد . در واقع مرورگر وب صدای خود را با استفاده از پروتکل HTTP به گوش سرویس دهنده وب رسانده و از وی درخواست یک صفحه وب را می نماید.
به منظور انجام یک تراکنش موفقیت آمیز بین سرویس گیرندگان وب ( نظیر IE ) و سرویس دهندگان وب ( نظیر IIS ) ، به اطلاعات زیادی نیاز خواهد بود . پس از handshake پروتکل TCP/IP ، مرورگر اطلاعات گسترده ای را برای سرویس دهنده وب ارسال می نماید .
یک بسته اطلاعاتی نمونه در شکل زیر نشان داده شده است :
توضیحات :
داده مربوط به پروتکل لایه application ( در این مورد خاص پروتکل HTTP ) ، پس از هدر TCP/IP قرار می گیرد . جدول زیر برخی اطلاعات مبادله شده بین سرویس گیرنده و سرویس دهنده وب را نشان می دهد .
عملکرد
نوع اطلاعات
سرویس گیرنده وب یک درخواست GET را برای سرویس دهنده وب ارسال و از وی درخواست اطلاعاتی را با استفاده از پروتکل HTTP 1.1 می نماید.
پروتکل HTTP دارای نسخه شماره یک نیز می باشد که امروزه عموما" از نسخه فوق استفاده نمی گردد و در مقابل از نسخه 1 . 1 استفاده می شود.
GET /HTTP/1.1
وب سایتی است که سرویس گیرنده قصد ارتباط با آن را دارد .
Host:
www.google.ca
به سرویس دهنده وب ، نوع نرم افزار سرویس گیرنده ( در این مورد خاص Mozilla version 5.0 ) و نوع سیستم عامل نصب شده بر روی کامپیوتر ( در این مورد خاص Windows version NT 5.1 و یا همان ویندوز XP ) اعلام می گردد.
User-agent:
Mozilla/5.0 (Windows; U; Windows NT 5.1;
نوع character set استفاده شده به سرویس دهنده اعلام می گردد ( در این مورد خاص از en:us و نسخه شماره 10 . 7 . 1 استفاده شده است ) .
en-US; rv: 1.7.10)
نام مرورگر استفاده شده توسط سرویس گیرنده به سرویس دهنده وب اعلام می گردد ( در این مورد خاص از مرورگر FireFox استفاده شده است ) .
Gecko/20050716 Firefox/1.0.6
سرویس گیرنده به سرویس دهنده وب فرمت اطلاعاتی را که می تواند دریافت نماید ، اعلام می نماید ( در این مورد خاص هم برای متن و هم برای application از فرمت xml استفاده می گردد ) .
Accept:
text/xml, application/xml, application/xhtml+xml
سرویس گیرنده به سرویس دهنده نوع فرمت متن دریافتی را اعلام می نماید ( در این مورد خاص html و یا plain text ) .
همچنین فرمت فایل های گرافیکی ( در این مورد خاص png . و سایر فرمت های متداول ) نیز اعلام می گردد .
text/html; q=0.9, text/plain; q=0.8, image/png, */*;q=0.5
لیست character set که سرویس گیرنده وب قادر به فهم آنان است، اعلام می گردد ( در این مورد خاص ISO-8859 , و یا utf-8 ) .
Accept-Charset:
ISO-8859-1, utf-8; q=0.7, *;q=0/7
به سرویس دهنده وب مدت زمان نگهداری session اعلام می گردد ( در این مورد خاص 300 ثانیه ) .
سرویس گیرندگان می توانند با صراحت پایان یک session را اعلام نمایند . در نسخه شماره 1 . 1 پروتکل HTTP ، ارتباط و یا اتصال برقرار شده فعال و یا open باقی خواهد ماند تا زمانی که سرویس گیرنده خاتمه آن را اعلام و یا مدت زمان حیات آن به اتمام رسیده باشد .
در نسخه شماره یک پروتکل HTTP ، پس از هر درخواست و اتمام تراکنش ، ارتباط ایجاد شده غیرفعال و یا close می گردد .
Keep-Alive:
300 Connection: keep-alive
cookie و مقدار مربوطه به آن اعلام می گردد. کوکی یک متن اسکی فلت می باشد که اطلاعات متفاوتی را در خود نگهداری می نماید .
مدت زمان حیات یک کوکی می تواند موقت ( تا زمانی که مرورگر فعال است ) و یا دائم ( ذخیره بر روی هارد دیسک کامپیوتر و در یک محدوده زمانی تعریف شده ) باشد .
Cookie: PREF=ID=01a0822454acb293: LD=en:TM=1121638094�..
User agent نوع مرورگر و سیستم عامل سرویس گیرنده را مشخص می نماید و این موضوع می تواند مواد اولیه لازم برای تدارک برخی حملات توسط مهاجمان را تامین نماید.
آشنائی با پروتکل HTTP ( بخش دوم )
در بخش اول با جایگاه پروتکل HTTP به منظور مبادله اطلاعات بین سرویس گیرندگان و سرویس دهندگان وب اشاره و در ادامه با نوع و ماهیت اطلاعات ارسالی سرویس گیرندگان وب به منظور دریافت خدمات از سرویس دهندگان ، آشنا شدیم .
در این بخش با نوع و ماهیت اطلاعات ارسالی سرویس دهندگان وب به منظور پاسخ به درخواست سرویس گیرندگان آشنا خواهیم شد.
مرورگر وب ، صدای خود را با استفاده از پروتکل HTTP به گوش سرویس دهنده وب می رساند و از وی درخواست یک صفحه وب را می نماید.
سرویس دهنده وب علاوه بر این که با این صدا آشنا است خود نیز برای پاسخ به مرورگر وب از مجموعه قوانین آن تبعیت می کند .
پروتکل HTTP : یک معماری سرویس گیرنده و سرویس دهنده
سرویس گیرنده وب ، مقادیر خاصی را با اهداف کاملا" مشخص شده برای سرویس دهنده وب ارسال می نماید ( حصول اطمینان از وجود یک زبان مشترک برای گفتگو بین سرویس گیرنده و سرویس دهنده وب ) . سرویس دهنده پس از بررسی اطلاعات ارسالی ، آنان را تفسیر و متناسب با آن اطلاعاتی را برای سرویس گیرنده ارسال می نماید . در معماری فوق یک نرم افزار در سمت سرویس گیرنده و به عنوان یک سرویس گیرنده وب ( نظیر IE و یا Mozilla Firefox ) ایفای وظیفه می نماید و در سمت سرویس دهنده یک نرم افزار به عنوان سرویس دهنده وب ( نظیر : IIS و یا Apache ) وظایف تعریف شده خود را انجام می دهد.
سناریوی فوق مدل و یا معماری سرویس گیرنده - سرویس دهنده را در ذهن تداعی می نماید ( معماری مبتنی بر درخواست و پاسخ ) .
پاسخ سرویس دهنده
شکل زیر یک بسته اطلاعاتی HTTP از مبداء یک سرویس دهنده به مقصد یک سرویس گیرنده را نشان می دهد ( پاسخ سرویس دهنده ).