شرحی بر پروتکل انتقال ابر متن

آنچه که باید در مورد پروتکل HTTP بدانیم

پروتکل HTTP ارائه کننده یک استاندارد پروتکل شبکه است که مرورگرهای وب و سرورها برای برقراری ارتباط از آن استفاده می کنند. شناسایی این پروتکل آسان است زمانی که از یک وبسایت بازدید می کنیم، زیرا درست در داخل URL وبسایت نوشته شده است (برای نمونه: http://thez.parastar.info – مرکز خدمات آکادمیک تز).

آنچه که باید در مورد پروتکل HTTP بدانیم

این پروتکل شبیه به سایر هم خانواده های خود از قبیل FTP است که توسط برنامه کلاینت برای درخواست فایل از سرور ریموت استفاده می شود. در پروتکل HTTP این مرورگر است که از وب سرور فایل های HTML را درخواست می کند، که در مرورگر به صورت متن، تصاویر و هیپرلینک و غیره نمایش داده می شود.

به پروتکل HTTP سیستم بدون وضعیت (stateless system) اطلاق می شود. این بدین معنی است که برخلاف سایر پروتکل های انتقال فایل مثل FTP؛ زمانی که درخواست انجام شد اتصال HTTP متوقف می شود. بنابراین زمانی که مرورگر وب درخواست را به وب سرور فرستاد و صفحه توسط وب سرور بر روی مرورگر بارگذاری شد، ارتباط بین آنها قطع می شود.

از آنجایی که پروتکل پیش فرض مرورگرها HTTP است، کافی است نام دامنه را تایپ کرده و اجرا کنید. مرورگر خودش به طور خودکار بخش http:// را برای شما پر خواهد کرد.

تاریخچه HTTP

تیم برنرز-لی (Tim Berners-Lee) در اوایل دهه 1990 به عنوان بخشی از کار خود در تعریف شبکه جهانی اینترنت به تعریف اولیه HTTP پرداخت. سه نسخه اولیه این پروتکل که در طی دهه 1990 مورد استفاده قرار گرفت، عبارتند از:

HTTP 0.9 - (برای پشتیبانی از اسناد ابر متن ساده)

HTTP 1.0 – (افزونه هایی برای پشتیبانی از وبسایت های غنی و مقیاس پذیری و لایه ای شدن اضافه شد)

HTTP 1.1 – (برای رفع محدودیت های عملکرد آدرس HTTP 1.0 ایجاد شد که در Internet RFC 2068 مشخص شده بود)

آخرین نسخه یعنی HTTP 2.0 به استاندارد مصوب در سال 2015 تبدیل شد. این پروتکل سازگاری با نسخه های قبلی خود را حفظ کرده اما بسیاری از عملکردها بهینه سازی شده است.

در حالی که HTTP استاندارد به رمزگذاری ترافیک ارسالی بر روی شبکه نمی پردازد، استاندارد HTTPS ایجاد گردید تا لایه رمز گذاری بر روی HTTP از طریق استفاده از لایه سوکت های امن (SSL) یا لایه امنیت انتقال (TLS) به آن اضافه شود.

HTTP چگونه عمل می کند

HTTP پروتکل لایه برنامه است که بر روی لایه TCP ساخته شده و از مدل برقراری ارتباط کلاینت – سرور استفاده می کند. کلاینت و سرور HTTP از طریق پیام های درخواست و پاسخ HTTP با هم ارتباط برقرار می کنند. سه نوع اصلی پیام HTTP شامل GET، POST و HEAD می باشند.

  • پیام های HTTP GET که به سرور ارسال می شوند تنها حاوی URL می باشند. ممکن است پارامترهای داده اختیاری نیز به انتهای این URL اضافه شود. سرور بخش پارامتر داده اختیاری را پردازش می کند، اگر وجود داشته باشد، سپس نتیجه را (که یک وب پیج یا بخشی از یک وب پیج است) را به مرورگر بر می گرداند.
  • در پیام های HTTP POST هر گونه پارامتر داده اختیاری در بدنه پیام گذاشته می شود و نه در پایان URL
  • درخواست HTTP HEAD همانند درخواست های GET عمل می کند. بجای پاسخ دادن با محتوای کامل URL، سرور تنها اطلاعات هدر را به مرورگر بر می گرداند (که در داخل بخش HTML گنجانده شده است).

مرورگر ارتباط خود با سرور HTTP را از طریق شروع اتصال TCP با سرور آغاز می کند. جلسات جستجوی وب بطور پیش فرض از پورت 80 استفاده می کند، گرچه پورت های دیگری مثل 8080 گاهی استفاده می شود.

زمانی که جلسه برقرار شد، کاربر دریافت و ارسال پیام های HTTP را از طریق بازدید وب پیج شروع می کند.

مشکلات پروتکل HTTP

پیام های منتقل شده از طریق HTTP ممکن است به دلایل مختلفی با موفقیت ارسال نشوند:

  • خطای کاربر
  • نقص عملکرد مرورگر وب یا وب سرور
  • خطا در ایجاد صفحات وب
  • مشکلات موقت شبکه

وقتی این خطا و شکست ها رخ دهد، پروتکل علت شکست را (در صورت امکان) مشخص کرده و به صورت کد خطا به مرورگر بر می گرداند که به آن کد وضعیت یا کد خطای HTTP اطلاق می شود. خطاهای ارسالی با اعداد خاصی شروع می شود تا نوع خطا مشخص گردد.

برای مثال، خطاهایی که با 499-400 شروع می شوند نشانگر آن است که درخواست صفحه بطور مناسب انجام نشد یا درخواست حاوی دستور زبان برنامه نویسی نامناسب است. به عنوان مثال، خطای 404 بدین معنی است که صفحه یافت نشد؛ بعضی وبسایت ها حتی دارای صفحاتی برای نمایش در زمان بروز خطای 404 هستند.