در این مقاله قصد داریم به معرفی HyperText Transfer Protocol) HTTP) بپردازیم. لطفا در ادامه برای آشنایی با ویژگی های این پروتکل، با ما همراه باشید.
اینترنت (یا وب) یک سیستم اطلاعات کلاینت / سرور گسترده است که در نمودار زیر نشان داده شده است.
بسیاری از کار های روز مره همزمان در وب اجرا می شوند، مانند مرور وب، گشت و گذار در وب، ایمیل، انتقال پرونده، پخش صوتی و ویدیویی و غیره. به منظور برقراری ارتباط مناسب بین مشتری و سرور، این برنامه ها باید در پروتکل سطح برنامه خاص مانند اچ تی تی پی،FTP ،SMTP POP ، HTT/P2و غیره اجرا شوند.
HyperText Transfer Protocol شاید مشهورترین پروتکل برنامه کاربردی مورد استفاده در اینترنت (یا WEB) باشد. HTTP همانطور که نشان داده شده یک پروتکل کلاینت سرور و درخواست پاسخ نامتقارن است. مشتری HTTP یک پیام درخواست را به سرور HTTP ارسال می کند. سرور به نوبه خود یک پیام پاسخ را برمی گرداند. به عبارت دیگر، HTTP یک پروتکل کشش است، مشتری اطلاعات را از سرور خارج می کند (به جای سرور اطلاعات را به سمت مشتری هدایت می کند).
HTTP یک پروتکل بدون تابعیت است. به عبارت دیگر، درخواست فعلی نمی داند که در درخواست های قبلی چه شده است.
HTTP اجازه مذاکره در مورد نوع داده و بازنمایی را می دهد، بنابراین اجازه می دهد تا سیستم ها بطور مستقل از داده های منتقل شده ساخته شوند.
به نقل از RFC2616: “پروتکل انتقال HTTP یک پروتکل در سطح برنامه کاربردی برای سیستمهای اطلاعاتی توزیع شده، مشترک وhypermedia است. این پروتکل عمومی، بدون تابعیت است که می تواند برای بسیاری از کارهای فراتر از استفاده از آن برای هایپرتکست، استفاده شود. به عنوان سرورهای نام و سیستمهای مدیریت توزیع شی، از طریق گسترش روشهای درخواست، کدهای خطا و هدرها.”
هنگامی که URL را از مرورگر خود ارسال می کنید تا با استفاده از HTTP صفحه مورد نظر را بدست آورید، به عنوان مثال: http://www.nowhere123.com/index.html، مرورگر URL را به یک پیام درخواستی تبدیل کرده و آن را به سرور HTTP ارسال می کند. سرور HTTP پیام درخواست را تفسیر می کند و یک پیام پاسخ مناسب را به شما باز می گرداند، نتیجه نشان داده شده یا منبع مورد درخواست شماست یا یک پیام خطا. این روند در زیر نشان داده شده است:
از URL (یك منبع منابع یك) برای شناسایی یك منبع به صورت اختصاصی در وب استفاده می شود. URL دارای ساختار زیر است:
protocol://hostname:port/path-and-file-name
در یک URL 4 قسمت وجود دارد:
به عنوان مثال، در URL http://www.nowhere123.com/docs/index.html، پروتکل ارتباطی HTTP است. نام میزبان www.nowhere123.com است. شماره پورت در URL مشخص نشده است و شماره پیش فرض را دریافت می کند، که پورت TCP 80 برای HTTP است. مسیر و نام پرونده برای یافتن منبع “/docs/index.html” است.
مثالهای دیگر URL عبارتند از:
ftp://www.ftp.org/docs/test.txt mailto:user@test101.com news:soc.culture.Singapore telnet://www.nowhere123.com/
همانطور که گفته شد، هر وقت URL را در کادر آدرس مرورگر وارد می کنید، مرورگر URL را مطابق پروتکل مشخص شده، URL را به یک پیام درخواستی ترجمه می کند و پیام درخواست را به سرور می فرستد.
به عنوان مثال ، مرورگر URL http://www.nowhere123.com/doc/index.html را در پیام درخواست زیر ترجمه کرد:
GET /docs/index.html HTTP/1.1 Host: www.nowhere123.com Accept: image/gif, image/jpeg, */* Accept-Language: en-us Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) (blank line)
هنگامی که این پیام درخواست به سرور رسید، سرور می تواند یکی از این اقدامات را انجام دهد:
سرور درخواست دریافت شده را تفسیر می کند، درخواست را در یک پرونده در زیر فهرست اسناد سرور نقشه برداری می کند و پرونده درخواست شده را به مشتری باز می گرداند.
این درخواست پاسخ داده نمی شود و سرور یک پیام خطا را برمی گرداند.
نمونه ای از پیام پاسخ HTTP به شرح زیر است:
HTTP/1.1 200 OK Date: Sun, 18 Oct 2009 08:56:53 GMT Server: Apache/2.2.14 (Win32) Last-Modified: Sat, 20 Nov 2004 07:16:26 GMT ETag: "10000000565a5-2c-3e94b66c2e680" Accept-Ranges: bytes Content-Length: 44 Connection: close Content-Type: text/html X-Pad: avoid browser bug <html><body><h1>It works!</h1></body></html>
مرورگر پیام پاسخ را دریافت می کند، پیام را تفسیر می کند و محتویات پیام را براساس نوع رسانه پاسخ (مانند در عنوان پاسخ Content-Type) در پنجره مرورگر نمایش می دهد. نوع رسانه متداول شامل “متن / ساده”، “متن / HTML”، “تصویر / gif”، “تصویر / jpeg”، “صوتی / MPEG”، “ویدئو / MPEG”، “برنامه / اسم کلمه” و “برنامه / pdf “.
در حالت آماده به کار ، یک سرور HTTP کاری جز گوش دادن به آدرس IP (ها) و پورت (های) مشخص شده در پیکربندی برای درخواست ورودی انجام نمی دهد. هنگامی که یک درخواست وارد می شود، سرور هدر پیام را تجزیه و تحلیل می کند، قوانینی را که در پیکربندی مشخص شده است اعمال می کند و اقدامات مناسب را انجام می دهد. کنترل اصلی وب مستر بر عملکرد وب سرور از طریق پیکربندی است که در بخش های بعدی با جزئیات بیشتری به آنها پرداخته می شود.
HTTP یک پروتکل سطح برنامه کلاینت سرور است. به طور معمول، بیش از یک اتصال TCP / IP اجرا می شود، همانطور که نشان داده شده است. (HTTP نیاز به TCP / IP ندارد. فقط یک حمل و نقل مطمئن را پیش بینی می کند و از هر پروتکل حمل و نقل که چنین تضمین هایی را ارائه می دهد استفاده می شود.)
TCP / IP (پروتکل کنترل انتقال / پروتکل اینترنت) مجموعه ای از پروتکل های حمل و نقل و لایه شبکه است که دستگاه ها برای برقراری ارتباط با یکدیگر از طریق شبکه می توانند از آن استفاده کنند.
IP (پروتکل اینترنت) یک پروتکل لایه شبکه است، به آدرس دهی و مسیریابی شبکه می پردازد. در یک شبکه IP، به هر دستگاه یک آدرس IP منحصر به فرد اختصاص داده می شود (به عنوان مثال ، 165.1.2.3) و نرم افزار IP مسئول مسیریابی پیام از IP منبع به IP مقصد است. در IPv4 (نسخه IP 4)، آدرس IP شامل 4 بایت است که هر یک از 0 تا 255 متغیر است و با نقاطی از هم جدا می شوند که به آن فرم چهار نقطه ای گفته می شود. این طرح شماره گذاری تا آدرس های 4G در شبکه را پشتیبانی می کند. آخرین (IPv6 (IP نسخه 6 آدرس های بیشتری را پشتیبانی می کند. از آنجا که حفظ کردن شماره برای اکثر افراد دشوار است، به جای آن از یک نام دامنه انگلیسی مانند www.nowhere123.com استفاده می شود. DNS (سرویس نام دامنه) نام دامنه را به آدرس IP (از طریق جداول جستجوی توزیع شده) ترجمه می کند. یک آدرس IP خاص 127.0.0.1 همیشه به دستگاه شما اشاره دارد. این نام Domian “localhost” است و می تواند برای آزمایش حلقه محلی بکار رود.
مشخصات HTTP توسط W3C (کنسرسیوم وب در سطح جهانی) نگهداری می شود و در http://www.w3.org/standards/techs/http در دسترس است. در حال حاضر دو نسخه HTTP وجود دارد، یعنی HTTP / 1.0 و HTTP / 1.1. نسخه اصلی، (HTTP / 0.9 (1991، نوشته شده توسط تیم برنرز لی، یک پروتکل ساده برای انتقال داده های خام از طریق اینترنت است. (HTTP / 1.0 (1996 تعریف شده در RFC 1945) با اجازه دادن به پیامهای MIME، پروتکل را بهبود بخشید. HTTP / 1.0 به مسائل مربوط به پروکسی ها، حافظه پنهان، اتصال مداوم، هاست مجازی و بارگیری دامنه نمی پردازد. این ویژگی ها در (HTTP / 1.1 (1999 ارائه شده است (تعریف شده در RFC 2616). همچنین پروتکل http/2 نیز می تواند در این زمینه استفاده شود.
امیدوارم از خواندن مقاله HyperText Transfer Protocol لذت برده باشید و تمامی اطلاعات مورد نیازتان را نیز بدست آورده باشید.