Sobes.tech
Junior

HTTP versiyalari va ularning farqlari haqida gapiring.

sobes.tech AI

AIdan javob

HTTP ning asosiy versiyalari:

  • HTTP/0.9: Oddiy HTML hujjatlarni uzatish uchun asosiy versiya. Faqat GET usuli qoʻllanilgan, sarlavhalar va javob holatlari yoʻq.
  • HTTP/1.0: Sarlavhalar (Content-Type, User-Agent), POST va HEAD usullari, javob holatlari qoʻshildi. Aloqa har bir soʻrov/javobdan soʻng yopildi.
  • HTTP/1.1: Muhim yaxshilanishlar:
    • Doimiy aloqalar (Persistent Connections) - TCP aloqasini bir nechta soʻrov uchun qayta ishlatish.
    • Pipelining - bir nechta soʻrovni javob kutmasdan yuborish (yomon amalga oshirilgan va kam foydalaniladi).
    • Virtual hosting (Host sarlavhasi).
    • Qisman GET soʻrovlari (Range sarlavhasi).
    • Kesh (Cache-Control, ETag, Last-Modified).
    • PUT va DELETE usullari.
  • HTTP/2: Google SPDY protokoliga asoslangan. Asosiy farqlar:
    • Binär protokol - yanada samarali parsing.
    • Multiplexing - bir TCP aloqasida bir nechta soʻrov/javoblarni parallel yuborish. "Head-of-line blocking" muammosini bartaraf etadi.
    • Sarlavhalarni siqish (HPACK) - uzatiladigan maʼlumot hajmini kamaytiradi.
    • Prioritization (Server Push) - server, ehtimol, mijozga kerak boʻladigan resurslarni, soʻrov qilmasdan oldin yuborishi mumkin.
  • HTTP/3: UDP (QUIC - Quick UDP Internet Connections) asosida, TCP oʻrniga. Ishlash samaradorligini oshirishga qaratilgan, ayniqsa nosoz tarmoqlarda:
    • TCP darajasidagi "head-of-line blocking" muammosini bartaraf etadi. TCPda paket yoʻqotilsa, barcha keyingi paketlar bloklanadi. QUIC (va HTTP/3)da faqat yoʻqotilgan paketga tegishli oqim bloklanadi.
    • Tezroq ulanish o‘rnatish (0-RTT yoki 1-RTT).
    • QUIC o‘zining oqim va ishonchlilik mexanizmlarini o‘z ichiga oladi.

Asosiy farqlar jadvalda:

Xususiyat HTTP/1.0 HTTP/1.1 HTTP/2 HTTP/3
Protokol TCP TCP TCP UDP (QUIC)
Format Matn Matn Ikili Ikili
Standart aloqa Qisqa muddatli Doimiy Doimiy (multiplexing) Doimiy (Streams QUIC)
Multiplexing Yoʻq Taqlid (Pipelining) Ha Ha
Sarlavha siqish Yoʻq Yoʻq HPACK QPACK (QUICda)
Server Push Yoʻq Yoʻq Ha Ha
HOL blokirovka (TCP) Ha (soʻrov darajasida) Ha (soʻrov darajasida) Ha (aloqa darajasida) Yoʻq (oqim darajasida)

HTTP/1.1 da soʻrov misoli:

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: curl/7.64.1
Accept: */*

HTTP/2 da soʻrov misoli (konseptual, chunki ikili):

// Soʻrov 1: /index.html ni olish
// :method = GET
// :path = /index.html
// :authority = www.example.com

// Soʻrov 2: /style.css ni olish
// :method = GET
// :path = /style.css
// :authority = www.example.com
// ...birga yuboriladi