پروتکل انتقال ابرمتن استاندارد پروتکل شبکه ای را ارائه می دهد که مرورگرها و سرورهای وب برای برقراری ارتباط از آن استفاده می کنند. وقتی از یک وب سایت بازدید می کنید، HTTP را می بینید زیرا پروتکل در URL ظاهر می شود (به عنوان مثال،
این پروتکل مشابه پروتکل های دیگر است، مانند پروتکل انتقال فایل، زیرا توسط یک برنامه مشتری برای درخواست فایل ها از یک سرور راه دور استفاده می شود. در مورد HTTP، یک مرورگر وب فایلهای HTML را از یک سرور وب درخواست میکند، که سپس در مرورگر با متن، تصاویر، لینکها و داراییهای مرتبط نمایش داده میشود.
از آنجایی که مرورگرها با استفاده از HTTP ارتباط برقرار می کنند، معمولاً می توانید پروتکل را از URL زمانی که آن را در نوار آدرس مرورگر تایپ می کنید حذف کنید.
تاریخچه
Tim Berners-Lee استاندارد اولیه HTTP را در اوایل دهه 1990 به عنوان بخشی از کار خود در تعریف شبکه جهانی وب اصلی ایجاد کرد. سه نسخه اولیه در طول دهه 1990 به کار گرفته شد:
- HTTP 0.9: پشتیبانی از اسناد فرامتن اساسی.
- HTTP 1.0: برنامه های افزودنی برای پشتیبانی از وب سایت های غنی.
- HTTP 1.1: توسعه یافته برای رفع محدودیتهای عملکرد HTTP 1.0، مشخصشده در اینترنت RFC 2068.
آخرین نسخه، HTTP 2.0، در سال 2015 به یک استاندارد تأیید شده تبدیل شد. سازگاری قبلی با HTTP 1.1 را حفظ می کند، اما بهبودهای بیشتری در عملکرد ارائه می دهد.
در حالی که HTTP استاندارد ترافیک ارسال شده از طریق شبکه را رمزگذاری نمی کند، استاندارد HTTPS رمزگذاری را از طریق استفاده از لایه سوکت های امن یا بعداً امنیت لایه انتقال به HTTP اضافه می کند.
HTTP چگونه کار می کند
HTTP یک پروتکل لایه کاربردی است که بر روی TCP ساخته شده است که از یک مدل ارتباطی مشتری-سرور استفاده می کند. کلاینت ها و سرورهای HTTP از طریق پیام های درخواست و پاسخ با هم ارتباط برقرار می کنند. سه نوع اصلی پیام HTTP عبارتند از GET، POST و HEAD.
- HTTP GET: پیامهایی که به سرور ارسال میشوند فقط حاوی URL هستند. صفر یا چند پارامتر داده اختیاری ممکن است به انتهای URL اضافه شود. سرور بخش داده اختیاری URL را در صورت وجود پردازش می کند و نتیجه (یک صفحه وب یا عنصر یک صفحه وب) را به مرورگر برمی گرداند.
- HTTP POST: پیامها هر پارامتر داده اختیاری را در بدنه پیام درخواست قرار میدهند نه اینکه آنها را به انتهای URL اضافه کنند.
- HTTP HEAD: درخواستها مانند درخواستهای GET عمل میکنند. سرور به جای پاسخ دادن با محتوای کامل URL، فقط اطلاعات هدر (که در داخل بخش HTML موجود است) را پس میفرستد.
مرورگر با شروع اتصال TCP به سرور، ارتباط با سرور HTTP را آغاز می کند. جلسات مرور وب به طور پیش فرض از پورت سرور 80 استفاده می کنند، اگرچه گاهی اوقات از پورت های دیگری مانند 8080 به جای آن استفاده می شود.
پس از برقراری جلسه، با مراجعه به صفحه وب، ارسال و دریافت پیامهای HTTP را فعال میکنید.
HTTP چیزی است که به آن سیستم بدون وضعیت می گویند. این بدان معناست که بر خلاف سایر پروتکل های انتقال فایل مانند FTP، اتصال HTTP پس از تکمیل درخواست قطع می شود. بنابراین، پس از اینکه مرورگر وب شما درخواست را ارسال کرد و سرور با صفحه پاسخ داد، اتصال بسته می شود.
عیبیابی
پیام های ارسال شده از طریق HTTP ممکن است به دلایل مختلفی با شکست مواجه شوند:
- خطای کاربر.
- نقص عملکرد مرورگر وب یا وب سرور.
- خطا در ایجاد صفحات وب.
- اشکال موقت شبکه.
وقتی این خرابی ها رخ می دهند، پروتکل علت خرابی را ثبت می کند و یک کد خطا به نام خط/کد وضعیت HTTP را به مرورگر گزارش می دهد. خطاها با یک عدد مشخص شروع می شوند تا نشان دهند که چه نوع خطای است.
به عنوان مثال، خطاهایی با کد خرابی که با چهار شروع می شود نشان می دهد که درخواست صفحه نمی تواند به درستی تکمیل شود، یا این درخواست حاوی نحو نادرستی است. به عنوان مثال، خطاهای 404 به این معنی است که یک صفحه وب را نمی توان یافت. برخی از وب سایت ها حتی صفحات خطای 404 سفارشی سرگرم کننده را ارائه می دهند.