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
GETusuli qoʻllanilgan, sarlavhalar va javob holatlari yoʻq. - HTTP/1.0: Sarlavhalar (Content-Type, User-Agent),
POSTvaHEADusullari, 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