Web je dramatično evoluirao za poslednjih dvadesetak godina, ali HTTP i energija weba nije.
Web developeri su uspevali da zaobiđu HTTP ograničenja, ali:
- Performanse još zaostaju u punoj širini protoka
- Web dizajn i održavanje su mnogo kompleksniji
- Konzumacija resursa je povećana i sa klijentske i sa serverske strane
- Keširanost resusra trpi
HTTP/2 pokušava da reši mnoge nedostatke i nefleksibilnost HTTP/1.1
Mnogi benefiti uključuju:
Multiplexing and concurrency: Nekoliko zahteva mogu biti poslati na istu TCP konekciju, a odgovori mogu biti primljeni preko reda, eliminišući tako potrebu za višestruku konkeciju između klijenta i servera
- Stream dependencies: Klijent može da ukaže serveru na to koji od resursa je važniji od ostalih.
- Header compression: HTTP veličina headera se drastično smanjila
Svaki HTTP transfer nosi sa sobom čitav set headera koji opisuju resurs koji se prenosi i njegova svojstva. U HTTP/1.x ovaj meta podatak se šalje kao običan tekst koji transferu dodaje dodatnih 500-800 bajtova, a ponekad se to meri i u kilobajtima ako se koriste cookies. Kako bi se ovo smanjilo i dovelo do poboljšanja performansi, HTTP/2 kompresuje zahtev i odgovor koristeći HPACK format za kompresovanje.
Server push: Server može slati resurse koje klijent još nije ni zahtevao.
Još jedna moćna funkcija kod HTTP/2 je sposobnost servera da šalje više odgovora na jedan klijentov zahtev. Pored odgovora na prvobitni zahtev, server može gurnuti (push) dodatna sredstva za klijenta, bez da klijent mora eksplicitno da ih traži.
Nećete morati da na bilo koji način menjate vaš web sajt ili aplikaciju da bi osigurali njihov pravilan rad. Ne samo da će vaš aplikacioni kod i HTTP API nastaviti da radi, nego će naprotiv vaša aplikacija imati bolje performanse sa upotrebom manje resursa kako sa klijentske, tako i sa serverske strane.
Možemo li koristiti HTTP/2 sada?
HTTP/2 je trenutno dostupan u Firefoxu i Chrome-u za testiranje, koristeći “h2-14” identifikator protokola.
HTTP/1 i HTTP/2 učitavanje stranice
HTTP/1: 31 sekunda učitavanja
…….. 30 sekundi posle
HTTP/2: 1.7 sekunda učitavanja
sredstva se učitavaju preko jednog multiplexed TCP stream-a.
….. 1.5 sekunda kasnije ….