Sobes.tech
Junior

HTTP versiyaları və onların fərqləri haqqında danışın.

sobes.tech Süni İntellekt

AI-dan cavab

Əsas HTTP versiyaları:

  • HTTP/0.9: Sadə HTML sənədlərinin ötürülməsi üçün əsas versiya. Yalnız GET metodu dəstəklənirdi, başlıqlar və cavab statusları yox idi.
  • HTTP/1.0: Başlıqların (Content-Type, User-Agent), POSTHEAD metodlarının və cavab statuslarının dəstəklənməsi ilə təqdim edildi. Hər sorğu/cavabdan sonra əlaqə bağlanırdı.
  • HTTP/1.1: Əhəmiyyətli təkmilləşdirmələr:
    • Davam edən əlaqələr (Persistent Connections) - TCP əlaqəsini bir neçə sorğu üçün təkrar istifadə etmək.
    • Boru xətti (Pipelining) - əvvəlki cavab gözləmədən bir neçə sorğu göndərmək (bunun pis həyata keçirilməsi və nadir hallarda istifadə olunur).
    • Virtual hostlar (Host başlığı).
    • Hissəvi GET sorğuları (Range başlığı).
    • Keşləmə (Cache-Control, ETag, Last-Modified).
    • PUT və DELETE metodları.
  • HTTP/2: Google-ın SPDY protokolü əsasında. Əsas fərqlər:
    • İkili protokol - daha effektiv parse üçün.
    • Multiplexing - bir TCP əlaqəsi üzərində çox sayda sorğu/cavabın paralel ötürülməsi. HTTP/1.1 pipelining-dəki "head-of-line blocking" problemini aradan qaldırır.
    • Başlıqların sıxılması (HPACK) - ötürülən məlumatların ölçüsünü azaldır.
    • Prioritetləşdirmə (Server Push) - server, müştəriyə lazım ola biləcək resursları soruşmadan göndərə bilər.
  • HTTP/3: UDP protokolü (QUIC - Quick UDP Internet Connections istifadə edir) üzərində qurulub və TCP yerinə istifadə olunur. Performansı artırmaq üçün nəzərdə tutulub, xüsusən qeyri-stabil şəbəkələrdə:
    • TCP-dəki "head-of-line blocking"-i aradan qaldırır. TCP-də bir paket itirilsə, bütün ardıcıl paketlər bloklanır. QUIC və HTTP/3-də isə yalnız itirilmiş paketə aid axın bloklanır.
    • Daha sürətli əlaqə qurma (0-RTT və ya 1-RTT).
    • QUIC öz axın və etibarlılıq idarəetmə mexanizmlərinə malikdir.

Əsas fərqlər cədvəldə:

Xüsusiyyət HTTP/1.0 HTTP/1.1 HTTP/2 HTTP/3
Protokol TCP TCP TCP UDP (QUIC)
Format Mətnli Mətnli İkili İkili
Əsas əlaqə növü Qısa müddətli Davam edən Davam edən (multiplexing) Davam edən (QUIC axınları)
Multiplexing Yox Təsviri (Pipelining) Bəli Bəli
Başlıqların sıxılması Yox Yox HPACK QPACK (QUIC-də)
Server Push Yox Yox Bəli Bəli
TCP-də HOL Blocking Bəli (sorğu səviyyəsində) Bəli (sorğu səviyyəsində) Bəli (əlaqə səviyyəsində) Yox (axın səviyyəsində)

HTTP/1.1-də sorğu nümunəsi:

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

HTTP/2-də (konseptual, ikili formatda) sorğu nümunəsi:

// Sorğu 1: /index.html alın
// :method = GET
// :path = /index.html
// :authority = www.example.com

// Sorğu 2: /style.css alın
// :method = GET
// :path = /style.css
// :authority = www.example.com
// ...bir əlaqə üzərində paralel ötürülür