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 به این معنا است که همه چیز مرتب است. سرآیندهای بعدی، به‌ترتیب، تاریخ درخواست، نام سرویس‌دهنده، تاریخ اصلاح منبع درخواستی، نوع انتقال داده، طول داده و نوع انتقال داده است. ‌ ‌

منابع ‌ ‌

http://www.w3.org/Protocols
http://en.wikipedia.org/wiki/Http

پی‌نوشت‌ها

‌ HyperText Transfer Protocol. 1‌

User agent. 2‌

 Origin Server. 3‌

 Gateway. 4‌

 Status line. 5‌

 Host. 6‌

 Method. 7‌

 Uniform Resource Indicator. 8

محمدحسین کردونی

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰

نیازمندی ها