Sobes.tech
Middle

Kādas ir atšķirības starp protokoliem HTTP/1 un HTTP/2?

sobes.tech AI

Atbilde no AI

Galvenās atšķirības starp HTTP/1.1 un HTTP/2:

  • Multiplexing:

    • HTTP/1.1: Sekvencēta pieprasījumu apstrāde pa vienai savienojuma. Paralēlam ielādei bija nepieciešami vairāki TCP savienojumi.
    • HTTP/2: Multiplexing pa vienu TCP savienojumu. Ļauj vienlaikus sūtīt vairākus pieprasījumus un saņemt atbildes, neapdraudot cits citu.
  • Virsrakstu saspiešana (HPACK):

    • HTTP/1.1: Virsraksti tiek pārsūtīti nesaspiežot, kas var būt lieki pie lielas pieprasījumu skaita.
    • HTTP/2: Virsrakstu saspiešana ar HPACK algoritmu. Samazina pārsūtāmo datu apjomu.
  • Plūsmu prioritāte:

    • HTTP/1.1: Prioritātes iespēja nebija pieejama.
    • HTTP/2: Klients var piešķirt prioritātes dažādiem datu plūsmām, ietekmējot to apstrādes kārtību serverī.
  • Servera sūtīšana (Server Push):

    • HTTP/1.1: Klients skaidri jāpieprasa katrs resurss (CSS, JS, attēli).
    • HTTP/2: Serveris var iepriekš nosūtīt klientam resursus, kas, pēc viņa domām, būs nepieciešami lapas attēlošanai, pirms klienta pieprasījuma.
  • Divu binārais protokols:

    • HTTP/1.1: Tekstprotokols, relatīvi viegli lasāms.
    • HTTP/2: Divu binārais protokols, efektīvāks parsēšanai un pārraidīšanai.

Salīdzināšanas tabula:

Īpašība HTTP/1.1 HTTP/2
Multiplexing Nē (vajag vairāk TCP) Jā (viens TCP)
Virsrakstu saspiešana Jā (HPACK)
Plūsmu prioritāte
Servera sūtīšana
Protokola formāts Tekstveida Divu binārais
Head-of-Line bloķēšana Pastāv (viena TCP gadījumā) Samazināta, pateicoties multiplexing

Piemērs multiplexing (konceptuāli):

// HTTP/1.1: Sekvencēti pieprasījumi
fetch('/resource1')
  .then(() => fetch('/resource2'))
  .then(() => fetch('/resource3'));

// HTTP/2: Paralēli pieprasījumi vienā savienojumā
// Pārlūkprogrammā tas notiek automātiski HTTP/2
// Konceptuāli pieprasījumi var tikt nosūtīti gandrīz vienlaikus