Ce este HTTP / 2 și cum afectează viitorul internetului?

Ce este HTTP / 2 și cum afectează viitorul internetului? / Tehnologie explicată

Este posibil să nu fiți auzit încă de HTTP / 2, dar este cea mai recentă actualizare a HTTP. Noul standard de protocol introduce câteva noi concepte și face comunicarea între servere și aplicații mai rapidă și mai eficientă.

Ce este HTTP / 2?

HyperText Protocol Transfer Version 2 sau HTTP / 2 este prima actualizare majoră a HTTP în 15 ani.

Standardul precedent de protocol, HTTP / 1.1, se află în uz din 1997 și utilizează o combinație de soluții pentru a îmbunătăți limitările HTTP.

Se bazează pe SPDY (“rapid”), un experiment open source inițiat de Google pentru a aborda unele dintre problemele și limitările HTTP / 1.1

Ingineria Internet Engineering Task Force (IETF) specifică modificările ca aceasta în Hypertext Transfer Protocol versiunea 2, Draft 17:

“HTTP / 2 permite o utilizare mai eficientă a resurselor de rețea și o percepție redusă a latenței prin introducerea compresiei câmpului de antet și permițând mai multe schimburi concurente pe aceeași conexiune [...]

“De asemenea, permite prioritizarea cererilor, permițând completarea mai rapidă a cererilor mai importante, îmbunătățirea în continuare a performanțelor.”

“HTTP / 2 permite, de asemenea, o prelucrare mai eficientă a mesajelor prin utilizarea cadrelor mesajelor binare.”

“Această specificație este o alternativă la, dar nu depășește, sintaxa mesajului HTTP / 1.1. Semanticile existente ale HTTP rămân neschimbate.”

HTTP / 2 se bazează pe SPDY

Până în 2012, majoritatea browserelor moderne și multe site-uri populare (Google, Twitter, Facebook etc.) au susținut deja SPDY. Deoarece popularitatea SPDY a fost în creștere, Grupul de lucru HTTP (HTTP-WG) a început să lucreze la actualizarea standardului HTTP.

Din acest moment, SPDY a devenit ramura fundamentală și experimentală pentru noi caracteristici în HTTP / 2. În acel moment, am examinat modul în care SPDY poate îmbunătăți navigarea. Ce este SPDY și cum poate maximiza experiența dvs. de navigare? Ce este SPDY și cum poate maximiza experiența dvs. de navigare? Citeste mai mult . De atunci, standardul versiunii 2 a fost elaborat, aprobat și publicat.

Multe dintre caracteristicile SPDY au fost încorporate în HTTP / 2, iar Google a încetat în cele din urmă să susțină acest protocol la începutul anului 2016.

Cele mai multe browsere au încetat în cele din urmă să susțină SPDY, și întrucât nu există alternative, HTTP / 2 devine standardul de facto.

În timp ce standardul protocolului HTTP / 2 nu este strict compatibil cu HTTP / 1, compatibilitatea poate fi obținută prin traducere. Un client HTTP / 1.1 nu va înțelege doar un server HTTP / 2 și vice versa, motiv pentru care noua versiune de protocol este HTTP / 2 și nu HTTP / 1.2.

Acestea fiind spuse, o parte importantă a activității oferite de HTTP-WG este să se asigure că HTTP / 1 și HTTP / 2 pot fi traduse înainte și înapoi fără pierderea informațiilor.

Orice noi mecanisme sau caracteristici introduse vor fi, de asemenea, independente de versiune și compatibile înapoi cu web-ul existent.

HTTP / 2 nu este într-adevăr ceva ce un utilizator poate implementa, dar există lucruri pe care le putem face pentru a ne afecta viteza de navigare. Credeți că vreunul dintre aceste mituri comune va accelera viteza de internet? 5 mituri despre creșterea vitezei de internet și de ce nu funcționează 5 mituri despre creșterea vitezei de internet și de ce nu funcționează Viteza internetului este o măsură critică în secolul XXI. Cu toate acestea, există o mulțime de informații dezinformate online despre cum să vă conectați mai repede. Iată cinci mituri pe care nu trebuie să le credeți. Citeste mai mult

Beneficiile și caracteristicile HTTP / 2

HTTP / 2 vine cu câteva actualizări extraordinare ale standardului HTTP. Unele dintre cele mai importante sunt încadrarea binară, multiplexarea, prioritizarea fluxurilor, controlul fluxului și împingerea serverului.

Formarea binară

Mesajele HTTP de către mfuji09 sunt licențiate sub CC-BY-SA 2.5.

După actualizarea la HTTP2 /, comunicarea protocolului HTTP este împărțită într-un schimb de cadre binare codate. Aceste cadre sunt mapate la mesaje care aparțin unui anumit flux. Fluxurile sunt apoi multiplexate (țesute împreună într-un sens) într-o singură conexiune TCP.

Noul strat de încadrare binar introduce o nouă terminologie; Fluxuri, mesaje și cadre.

  • Fluxurile sunt fluxuri bidirecționale de octeți care poartă unul sau mai multe mesaje.
  • Fiecare dintre aceste fluxuri are un identificator unic și poate purta mesaje bidirecționale utilizând informațiile de prioritate opționale.
  • Ramele sunt cea mai mică unitate de comunicare din HTTP / 2 care conține seturi specifice de date (antete HTTP, sarcini utile pentru mesaje etc.). Antetul va identifica cel puțin fluxul de care aparține cadrul.
  • Mesajele reprezintă un set complet de cadre care se referă la o solicitare logică sau un mesaj de răspuns.
  • Fiecare mesaj este un mesaj HTTP logic, ca o cerere sau răspuns, alcătuit dintr-unul sau mai multe cadre.

Acest lucru ne permite să folosim o singură conexiune TCP, pentru ceea ce a cerut în trecut multiple.

multiplexare

HTTP / 1.1 asigură că poate fi furnizat un singur răspuns la un moment dat pentru fiecare conexiune. Și browserul va deschide conexiuni TCP suplimentare dacă clientul dorește să facă mai multe solicitări paralele.

HTTP / 2 elimină această limitare a HTTP / 1.1 și permite multiplexarea completă a cererilor și a răspunsului. Aceasta înseamnă că clientul și serverul pot descompune un mesaj HTTP în cadre independente, care apoi sunt intercalate și reasamblate la celălalt capăt.

În general, aceasta este cea mai importantă îmbunătățire a HTTP / 2, deoarece în parte va elimina necesitatea unor conexiuni multiple. Acest lucru va aduce, la rândul său, numeroase beneficii de performanță în toate tehnologiile web.

Numărul redus de conexiuni înseamnă mai puține semne de strângere de tip Security Transport Layer (TLS), o reutilizare mai bună a sesiunilor și o reducere generală a cerințelor de resurse pentru clienți și servere. Acest lucru face aplicațiile mai rapide, mai simple și mai ieftine de implementat.

Site-urile cu multe active externe (imagini sau scripturi) vor vedea cele mai mari câștiguri de performanță din multiplexarea HTTP / 2.

Prioritizarea fluxului și dependența

Îmbunătățirile ulterioare ale fluxurilor multiplexate sunt realizate cu dependență de greutate și flux. HTTP / 2 ne permite să dăm fiecărei fluxuri o greutate (o valoare între 1 și 256) și să o facem în mod explicit dependent de un alt flux.

Această combinație de dependență și greutate duce la crearea unui arbore de prioritizare, care spune serverului cum ar prefera clientul să primească răspunsuri.

Serverul va utiliza informațiile din arborele de prioritizare pentru a controla alocarea procesorului, a memoriei și a altor resurse, precum și alocarea lățimii de bandă pentru a se asigura că clientul primește răspunsul optim al răspunsurilor cu prioritate ridicată.

Controlul debitului

Problemele cu controlul fluxului în HTTP / 2 sunt similare cu HTTP / 1.1. Cu toate acestea, deoarece fluxurile HTTP / 2 sunt multiplexate într-o singură conexiune TCP, modul de control al fluxului în HTTP / 1.1 funcționează nu mai este eficient.

Pe scurt, controlul fluxului este necesar pentru a opri fluxurile care interferează unele cu altele pentru a provoca blocaj. Acest lucru face posibila multiplexarea. HTTP / 2 permite folosirea unei varietăți de algoritmi de control al fluxului, fără a necesita modificări ale protocolului.

Nu este specificat niciun algoritm pentru controlul fluxului în HTTP / 2. În schimb, a fost furnizat un set de blocuri de construcție pentru a ajuta clienții și serverele să aplice controlul fluxului propriu.

Puteți găsi specificul acestor blocuri de construcție în “Controlul debitului” din HTTP / 2 internet-draft.

Server Push

În mod normal, browserul dvs. va solicita și va primi un document HTML de la un server la prima vizitare a unei pagini. Serverul trebuie să aștepte ca browserul să analizeze documentul HTML și să trimită o cerere pentru activele încorporate (CSS, JavaScript, imagini etc.).

În HTTP / 1.1, serverul nu poate trimite aceste active până când browserul nu le solicită, iar fiecare material necesită o cerere separată (de exemplu, mai multe strângeri de mână și conexiuni).

Implicarea serverului va reduce latența, permițând serverului să trimită aceste resurse fără prompt, deoarece știe deja că clientul le va cere. Deci, in exemplul de mai sus, serverul va impinge CSS, JavaScript (un limbaj comun de scripting Ce este JavaScript si cum functioneaza acesta?) Ce este JavaScript si cum functioneaza Ce este Javascript Este un limbaj de programare folosit pentru a imbunatati paginile web. Acesta include actualizarea dinamică a paginilor web, a interfețelor de utilizator și a altora. Să ne aruncăm cu privire la ceea ce se referă la Javascript, Citiți mai multe în paginile web) și imagini în browser pentru a afișa pagina mai repede.

Practic, server push permite unui server să trimită mai multe răspunsuri pentru o singură cerere de client.

Deși manual, acesta este efectul pe care îl obținem prin introducerea CSS sau JS în documentele noastre HTML - împingem resursa inline către client fără a aștepta ca clientul să o solicite.

Acesta este un pas mare departe de standardul HTTP curent, de un flux de lucru strict solicitat-răspuns strict unul-la-unu.

Limitările HTTP / 2

SPDY avea o politică puțin mai strictă privind securitatea și avea nevoie de criptare SSL pentru toate conexiunile. HTTPS / 2 nu necesită criptare, dar multe servicii nu vor servi HTTP / 2 fără SSL.

Toate browserele majore acceptă HTTP / 2, dar niciunul dintre ele nu îl va suporta fără criptare. Site-ul web CanIUs are o imagine de ansamblu asupra tabelului de suport pentru browserul curent pentru HTTP / 2, după cum se vede mai sus.

Compatibilitatea înapoi și traducerile dintre HTTP / 1.1 și HTTP / 2 vor încetini viteza de încărcare a paginii.

Nu există niciun motiv real pentru care criptarea nu ar trebui să fie o configurare implicită sau obligatorie până acum. Dacă aveți deja un certificat SSL pe site-ul dvs., puteți îmbunătăți securitatea site-ului HTTPS activând HSTS.

Este HTTP / 2 Următorul lucru mare?

HTTP / 2 a fost propus ca standard la mijlocul anului 2015, iar majoritatea browserelor au adăugat suport pentru acesta până la sfârșitul acelui an. HTTP / 2 afectează deja modul în care funcționează internetul și modul în care aplicațiile și serverele vorbesc împreună.

Nu există cerințe pentru forțarea utilizării HTTP / 2, dar până acum ea servește doar beneficii și dezavantaje. De asemenea, este o schimbare destul de minoră din perspectiva utilizatorului, pe care oamenii nu o vor observa.

Potrivit W3Tech, 31,7% din primele 10 milioane de site-uri Web suportă în prezent HTTP / 2. Cea mai rapidă metodă pentru majoritatea utilizatorilor de a activa HTTP / 2 pe site-ul dvs. Web este să utilizați CDN Cloudflare.

Următorul standard propus (HTTP / 3) este deja în lucru și se bazează pe QUIC, un alt proiect experimental realizat de Google. În luna octombrie a acestui an, HTTP-WG al IETF și Grupul de lucru QUIC au cerut oficial QUIC să devină noul standard mondial și să îl redenumească HTTP / 3.

Dacă sunteți curios, Akamai.com are un instrument rapid pentru a verifica dacă browserul dvs. acceptă HTTP / 2. În caz contrar, luați în considerare schimbarea browserului dvs. 5 Alternative Google Chrome pentru un browser mai bun pe desktop sau pe mobil 5 Alternative Google Chrome pentru un browser mai bun pe desktop sau mobil Chrome este cel mai popular browser din lume. Dar are încă probleme. Pot aceste browsere alternative să fie o alegere mai bună? Citeste mai mult .

Explorați mai multe despre: Rețele de calculatoare, HTTP / 2, SPDY.