تبلیغات
شنیده ها و نشنیده ها - HTTP‌ به زبان ساده
سه شنبه 1387/10/10

HTTP‌ به زبان ساده

   نوشته شده توسط: پوریا    نوع مطلب :عمومی ،

حتما تابه‌حال برای شما پیش آمده است كه از خود بپرسید این ‌http://‌ كه در ابتدای آدرس وب‌سایت‌ها می‌گذارند یعنی چه؟ كلمه‌ای كه قبل از ‌://‌ می‌آید، پروتكل انتقال پیام میان سرویس‌دهنده و سرویس‌گیرنده را مشخص می‌كند. از پركاربردترین این پروتكل‌ها، ‌HTTP‌ است. ‌‌هما‌ن‌طور كه از نام ‌HTTP‌1‌ ‌برمی‌آید، سرویسی استاندارد برای فرستادن درخواست و دریافت پاسخ بین سرویس‌دهنده و سرویس‌گیرنده است. در اینجا سرویس‌گیرنده كاربر هدف و سرویس‌دهنده وب‌سایت است. ‌ ‌

هر درخواست ‌HTTP‌ از سمت سرویس‌گیرنده (كه ممكن است به فرم ربات جستجوگر، مرورگر اینترنت و ... باشد) به‌عنوان كارگزار كاربر2‌ ‌تعریف می‌شود. سرویس‌دهنده‌‌ای كه پاسخ می‌دهد (و ممكن است این پاسخ به‌شكل تصویر، متن و حتی فایل باشد)، سرور مبدا3‌ ‌نامیده می‌شود. در این میان ممكن است كه كارگزار كاربر و سرور مبدا از واسط‌های متفاوتی مانند پروكسی‌ها، درگاه‌های شبكه4‌‌و تونل‌ها استفاده كنند. ‌

HTTP‌ ملزم به استفاده از پشته ‌TCP/IP‌ و لایه‌های آن نیست، با این وجود محبوب‌ترین پروتكل در اینترنت است. درواقع این ویژگی ‌HTTP‌ است كه می‌تواند روی هر پروتكل دیگری در اینترنت یا شبكه‌های داخلی پیاده‌سازی شود. ‌ ‌
شیوه عملكرد ‌HTTP‌ به‌طور ساده به‌این صورت است: ‌ ‌

سرویس‌گیرنده، درخواست جدیدی روی پروتكل ‌TCP‌ و پورتی خاص (به‌طور پیش‌فرض 80 در نظر گرفته می‌شود) ایجاد می‌كند. سرویس‌دهنده‌ ‌HTTP‌ روی آن پورت به‌انتظار می‌نشیند تا سرویس‌گیرنده درخواست خود را ارسال كند. سرور به‌محض دریافت درخواست، پیامی كه مشخص‌كننده‌وضعیت5‌ ‌است (مانند "‌OK 200 1.1HTTP/‌)"، از طرف خود بازمی‌گرداند. در مرحله بعد، با توجه به درخواست ممكن است بدنه‌پیام ارسالی پیام خطا یا اطلاعات درخواستی كاربر باشد. ‌ ‌

به‌عنوان مثال، بیایید رفت و برگشت یك درخواست ساده را بررسی كنیم: ‌ ‌

1– بسته اطلاعاتی در پروتكل ‌HTTP‌ درخواستی

– درخواست، مانند:

 ‌1.1 GET/images/logo.gif HTTP/‌‌ ‌كه منبعی با نام ‌/images/logo.gif‌ را از سرور درخواست می‌كند.

– مجموعه‌ای از سرآیندها، مانند زبان مقبول: انگلیسی ‌(Accept-Language: en)‌

– یك خط خالی

– بدنه پیام اختیاری.

توجه داشته باشید كه منظور از خط خالی، ‌CRLF‌ است. در پروتكل ‌HTTP‌ نسخه 1.1، تمامی سرآیندهایی كه در بسته قرار می‌گیرند اختیاری‌اند. تنها سرآیند6‌ ‌اجباری است كه میزبان را مشخص می‌كند.

2– روش‌های  درخواست

پروتكل ‌HTTP‌ هشت روش7‌ ‌را برای ارسال درخواست تعریف كرده است. این روش‌ها، بسته به نوع تعامل سرویس‌گیرنده و سرویس‌دهنده به كار می‌آیند. در این‌جا مهم‌ترین آن‌ها را بررسی می‌كنیم: ‌ ‌

‌HEAD‌: این روش، هنگامی مفید است كه تنها به اطلاعاتی كه از سوی سرویس‌دهنده ارسال می‌شود، نیاز داریم و با محتوی بسته كاری نداریم. ‌ ‌‌GET‌: به كمك ‌GET‌ می‌توان اطلاعات را از طریق ‌URI‌8‌ ‌انتقال داد. این موضوع وقتی مفید است كه بخواهیم از سرویس‌گیرنده اطلاعاتی را منتقل كنیم. اما اطلاعات در بدنه نباشد. ‌ ‌

‌POST‌: اطلاعات را برای پردازش ارسال می‌كند. اطلاعات در بدنه بسته ارسالی (بعد از خط خالی) قرار می‌گیرند. ‌ ‌

3– بسته اطلاعاتی پاسخ در پروتكل ‌HTTP‌

یك بسته نمونه كه از طرف سرور ارسال می‌شود، تقریبا مشابه شكل زیر است: ‌ ‌

‌OK 200 1.1 HTTP/‌
‌ 2005 May 23 Date: Mon,‌
‌GMT 22:38:34‌
‌ 1.3.3.7Server: Apache/‌
‌(Unix)  (Red-Hat/Linux)‌
‌ Jan 08 Last-Modified: Wed,‌
‌GMT 23:11:55 2003‌
‌Accept-Ranges: bytes‌
‌438 :Content-Length‌
‌ Content-Type: text/html;‌
‌8 charset=UTF-‌
خط اول، وضعیت پاسخ را مشخص می‌كند. 200 به این معنا است كه همه چیز مرتب است. سرآیندهای بعدی، به‌ترتیب، تاریخ درخواست، نام سرویس‌دهنده، تاریخ اصلاح منبع درخواستی، نوع انتقال داده، طول داده و نوع انتقال داده است. ‌ ‌