HTTP/1.1 — پروتکل انتقال ابرمتن

زبان مشترک مرورگر و سرور وب. هر درخواست یک خط متد و مسیر، چند سرآیند و یک بدنهٔ اختیاری است و سرور با یک کد وضعیت پاسخ می‌دهد.

  • لایهٔ OSI: 7 (کاربرد)
  • انتقال: TCP
  • پورت: 80
  • استاندارد: RFC 9110 / 9112
  • سطح: مقدماتی · حدود 6 دقیقه

نکته‌های کلیدی

  • HTTP بدون حالت است؛ هر درخواست مستقل است و حالت با کوکی یا توکن حفظ می‌شود.
  • کدهای وضعیت: ۱xx اطلاعاتی، ۲xx موفق، ۳xx تغییر مسیر، ۴xx خطای کاربر، ۵xx خطای سرور.
  • HTTP/1.1 متنی است؛ HTTP/2 دودویی و چندجریانه است و HTTP/3 روی QUIC اجرا می‌شود.

مراحل شبیه‌سازی (5 بسته)

  1. GET: مرورگر روی اتصال TCP آماده (پورت ۸۰) درخواست صفحه را به‌صورت متن ساده می‌فرستد. سرآیند Host مشخص می‌کند کدام سایت روی این سرور مدنظر است.
  2. 200 OK: سرور با کد ۲۰۰ موفقیت را اعلام می‌کند و با سرآیندها نوع، اندازه و قواعد کش پاسخ را توضیح می‌دهد.
  3. بدنهٔ HTML: بدنه بلافاصله بعد از خط خالی می‌آید. مرورگر HTML را تجزیه می‌کند و برای CSS، تصاویر و اسکریپت‌ها درخواست‌های تازه می‌فرستد.
  4. GET شرطی: دفعهٔ بعد مرورگر نسخهٔ کش‌شده را دارد و با If-None-Match فقط می‌پرسد آیا چیزی عوض شده است.
  5. 304: محتوا تغییر نکرده؛ سرور بدون بدنه پاسخ می‌دهد و مرورگر از کش استفاده می‌کند. پهنای باند صرفه‌جویی می‌شود.

درس‌های مرتبط

  • HTTPS — HTTP امن روی TLS
  • WebSocket — سوکت وب دوطرفه
  • HTTP/2 — نسل دوم HTTP