Sobes.tech
Middle

Mi különbözteti meg az HTTP/1 és HTTP/2 protokollokat?

sobes.tech MI

Válasz az MI-től

A HTTP/1.1 és a HTTP/2 közötti fő különbségek:

  • Multiplexálás:

    • HTTP/1.1: Szekvenciális kérésfeldolgozás egy kapcsolatban. Párhuzamos letöltésekhez több TCP kapcsolat szükséges volt.
    • HTTP/2: Multiplexálás egy TCP kapcsolaton belül. Lehetővé teszi több kérés egyidejű küldését és válaszok fogadását, anélkül, hogy blokkolná egymást.
  • Fejléc tömörítés (HPACK):

    • HTTP/1.1: A fejlécet tömörítetlenül továbbítják, ami sok kérés esetén redundáns lehet.
    • HTTP/2: Fejléc tömörítése az HPACK algoritmus segítségével. Csökkenti az átvitt adatok méretét.
  • Áramlatok priorizálása:

    • HTTP/1.1: Nem volt priorizálás.
    • HTTP/2: A kliens különböző adatfolyamoknak prioritásokat rendelhet, befolyásolva azok feldolgozási sorrendjét a szerver által.
  • Szerver által küldött push (Server Push):

    • HTTP/1.1: A kliensnek explicit módon kérnie kell minden erőforrást (CSS, JS, képek).
    • HTTP/2: A szerver előre küldheti azokat az erőforrásokat, amelyek szükségesek lehetnek az oldal megjelenítéséhez, még mielőtt a kliens kérné őket.
  • Bináris protokoll:

    • HTTP/1.1: Szöveges protokoll, viszonylag könnyen olvasható.
    • HTTP/2: Bináris protokoll, hatékonyabb a parsing és az átvitel szempontjából.

Összehasonlító táblázat:

Jellemző HTTP/1.1 HTTP/2
Multiplexálás Nem (több TCP) Igen (egy TCP)
Fejléc tömörítés Nem Igen (HPACK)
Áramlatok priorizálása Nem Igen
Szerver push Nem Igen
Protokoll formátuma Szöveges Bináris
Head-of-Line blokkolási probléma Jelen van (egy TCP esetén) Csökkent a multiplexálás révén

Példa multiplexálásra (koncepcionális):

// HTTP/1.1: Szekvenciális kérések
fetch('/resource1')
  .then(() => fetch('/resource2'))
  .then(() => fetch('/resource3'));

// HTTP/2: Párhuzamos kérések egy kapcsolaton
// A böngészőben ez automatikusan megtörténik
// Koncepcionálisan, a kérések szinte egyidejűleg küldhetők