Sobes.tech
Middle

Wat zijn de verschillen tussen de protocollen HTTP/1 en HTTP/2?

sobes.tech AI

Antwoord van AI

De belangrijkste verschillen tussen HTTP/1.1 en HTTP/2:

  • Multiplexing:

    • HTTP/1.1: Sequentiële verwerking van verzoeken op één verbinding. Voor parallelle downloads waren meerdere TCP-verbindingen nodig.
    • HTTP/2: Multiplexing op één TCP-verbinding. Stelt gelijktijdig verzenden van meerdere verzoeken en ontvangen van antwoorden mogelijk, zonder elkaar te blokkeren.
  • Headercompressie (HPACK):

    • HTTP/1.1: Headers worden zonder compressie verzonden, wat overbodig kan zijn bij veel verzoeken.
    • HTTP/2: Headercompressie met behulp van het HPACK-algoritme. Vermindert de grootte van de verzonden gegevens.
  • Prioritering van stromen:

    • HTTP/1.1: Geen prioriteit.
    • HTTP/2: De client kan prioriteiten toewijzen aan verschillende datastromen, wat de verwerkingsvolgorde door de server beïnvloedt.
  • Server Push:

    • HTTP/1.1: De client moet elk resource (CSS, JS, afbeeldingen) expliciet aanvragen.
    • HTTP/2: De server kan resources vooraf sturen die nodig worden geacht voor het weergeven van de pagina, voordat de client ze aanvraagt.
  • Binaire protocol:

    • HTTP/1.1: Tekstgebaseerd protocol, relatief gemakkelijk te lezen.
    • HTTP/2: Binair protocol, efficiënter voor parsing en overdracht.

Vergelijkingstabel:

Kenmerk HTTP/1.1 HTTP/2
Multiplexing Nee (meerdere TCP) Ja (één TCP)
Headercompressie Nee Ja (HPACK)
Prioritering van stromen Nee Ja
Server Push Nee Ja
Protocolformaat Tekstueel Binair
Head-of-Line-blokkering probleem Aanwezig (voor één TCP) Verminderd dankzij multiplexing

Voorbeeld van multiplexing (conceptueel):

// HTTP/1.1: Sequentiële verzoeken
fetch('/resource1')
  .then(() => fetch('/resource2'))
  .then(() => fetch('/resource3'));

// HTTP/2: Parallelle verzoeken op één verbinding
// In de browser gebeurt dit automatisch voor HTTP/2
// Conceptueel kunnen verzoeken bijna gelijktijdig worden verzonden