HTTP / 2 är ett nytt sätt att vilket gör att din webbplats laddas mycket snabbare genom att eliminera många ineffektiviteter i samband med den nuvarande versionen av HTTP. Det bästa med det? Du behöver inte gå mycket för att få det igång.

Eller gör du?

Vad är HTTP / 2?

När HTTP1 och HTTP1.1 ursprungligen utvecklades var webben väldigt annorlunda än vad det är idag. Webbplatser hade färre resurser (JavaScript-filer, CSS-filer, bilder) än idag. Anslutningar till internet var inte så snabba, och användarna var inte väldigt noga med webbplatsens laddningshastighet.

Användare börjar klåda fingrar när en webbplats tar längre tid än 3 sekunder för att visa ett svar.

Du var glad att en webbplats laddade fullstopp. Du kanske har hemligt klagat att lastningen var långsam. Men du kunde inte göra så mycket om det. Det beror på att den långsamma laddningstiden normalt berodde på faktorer som var oberoende av webbservern och tekniken du använde. För det mesta var det den faktiska internetanslutningen som var den största begränsningsfaktorn.

Snabb fram till idag. Stora hemsida laddningstider mäts i millisekunder snarare än sekunder. Användare börjar klåda fingrar när en webbplats tar längre tid än 3 sekunder för att visa ett svar. I denna typ av situation börjar ineffektiviteten räknat i millisekunder som är associerade med de ursprungliga versionerna av HTTP att göra en verklig skillnad. Det är därför du får så många artiklar att diskutera hur man gör din webbplats snabbare . Eftersom millisekunder är viktiga.

Den nya versionen av HTTP, känd som HTTP / 2 adresserar specifika kända problem med HTTP. Dess mål är att ta itu med ett antal problem som har blivit mer uttalade eftersom webben har utvecklats till större och större webbplatser med många fler CSS, JS och bildfiler än vad som ursprungligen förväntades.

Men vad är fel med HTTP1.x, och varför spenderar vi så mycket arbete som gör det snabbare?

Problemen med HTTP1.x

HTTP1.x har ett antal inneboende problem. Låt oss faktiskt avstå från att kalla dem problem. HTTP1.x har ett antal sätt där det kan vara mer effektivt.

  1. HTTP 1.x är textbaserad: ursprungligen var tanken att HTTP1.x ska vara mänskligt läsbar så att den var helt textbaserad. Enligt definitionen har alla textbaserade protokoll ineffektivitet som är associerade med dem, såsom blankutrymme, länkbrott, kapitalisering etc.
  2. Endast en fil är överförd vid någon tidpunkt: detta är ett av de största problemen med 1.x-versionerna av HTTP. Tänk dig att vara en deliveryman som bara kan leverera ett paket åt gången. De måste gå tillbaka till bas varje gång de behöver leverera nästa paket.
  3. Hundratals förfrågningar krävs för dagens hemsidor: Att ha mer sofistikerade teman innebär att storleken på webbplatser och antalet resurser växer. Och det tar också tid att ladda varje resurs. Kom ihåg att vår "deliveryman" måste gå tillbaka till bas varje gång, de kan inte överföra mer än en fil i taget.
  4. Varje anslutning är en tung teknisk operation: Eftersom hundratals anslutningar krävs, börjar det ackumulera allvarliga överhead. Med laddningstiden mätt i millisekunder börjar den kombinerade tiden som krävs för att skapa en anslutning för hundratals resurser bli väldigt signifikant.

Många gånger måste webbdesigners genomföra specifika åtgärder för att minska dessa ineffektiviteter. Lösningar som CSS sprites, minifiering och kombination av filer är avsedda att övervinna problem med att ladda upp webbplatser.

Dessa är - i huvudsak - lösningar snarare än korrigeringar.

Hur HTTP / 2 löser problemen med HTTP1.x

HTTP / 2 är utformad och utvecklad från SPDY , ett protokoll utformat på Google som syftar till att göra webben 2x snabbare. Den adresserar HTTP-problem på följande sätt

  1. HTTP / 2 är avsedd för konsumtion av maskiner (din webbläsare och din webbplats webbserver) snarare än människor. Det är binärt snarare än textbaserat vilket gör det självklart mer effektivt. Överföring och analys av data är snabbare med binära protokoll.
  2. Flera filer kan överföras samtidigt i samma anslutning . Fixer implementerades så att du kan leda resurser på samma anslutning. Snarare än att behöva öppna en ny anslutning varje gång (vår återförsäljare går tillbaka till basen), kan alla resurser transporteras i samma anslutning (vår leverantör dumpar allt i en bil och tar allt på en enda resa).
  3. Server push för att skicka filer som krävs av webbläsaren. I HTTP1.x är det webbläsaren som frågar webbservern om de resurser som krävs. HTTP Server Push (implementerad som en del av HTTP / 2) tillåter servern att börja skicka resurser som den vet att webbläsaren behöver. Till exempel kan du instruera servern att inte vänta på att webbläsaren ska be om CSS, JS och andra resursfiler som webbläsaren kommer att behöva ändå.
  4. HTTP-pakethuvud och andra optimeringar - det här är tekniska förbättringar som är utformade för att förbättra effektiviteten i överföringarna

Vad krävs för att aktivera HTTP2?

Genom att inte stödja HTTP / 2 över okrypterade anslutningar är webbplatsägare starka beväpnade för att implementera HTTP för deras hemsida.

Tillbaka i början av artikeln sa vi att det inte krävs mycket arbete från slutet för att aktivera HTTP / 2. Aktivera HTTP / 2 är något som behöver göras på webbservernivå. De flesta webbservrar som Apache, Nginx, IIS och andra stora webbservrar har redan stöd för HTTP / 2.

Om du kör din egen webbserver behöver du bara installera och aktivera HTTP / 2-biblioteken. Om din webbplats är värd med ett webbhotell, kolla med företaget om webbservern redan är aktiverad för HTTP / 2.

Fångsten? Säkra certifikat

Kanske var det för bra för att vara sant. Vi har just diskuterat hur webbservrar redan stöder HTTP / 2 fullt ut.

De flesta stora webbläsare stöder också HTTP / 2. Men de har också valt att bara stödja HTTP / 2 i krypterat läge. Anledningen till detta är att det har varit en stark rörelse för att möjliggöra HTTPS (kryptering) över hela webben. Sådana initiativ som HTTPS överallt kraftigt driva behovet av HTTPS på alla webbplatser.

Genom att inte stödja HTTP / 2 över okrypterade anslutningar är webbplatsägare starka beväpnade för att implementera HTTP för deras hemsida.

Det är förstås inte nödvändigtvis en dålig sak. Genomförandet av HTTPS har betydande säkerhets- och integritetsfördelar. Med företag som kommer samman för att bilda en certifikatmyndighet som heter Låt oss kryptera För att tillåta fria säkra certifikat blir den totala kostnaden för att faktiskt förvärva ett certifikat och implementerar HTTPS mycket billigare. Det var relativt dyrt förrän för en tid sedan.

Genomförandet av HTTPS är inte något du borde göra utan att ge den nödvändiga behoven. Du kan noga vilja diskutera detta med din pålitliga webbutvecklare eller någon med tillräcklig teknisk expertis. De flesta gånger bör ditt värdföretag kunna vägleda dig genom detta.

Naturligtvis rekommenderas det starkt att du implementerar HTTPS. Förutom den extra säkerheten kommer du att få möjlighet att aktivera HTTP / 2 och göra din webbplats snabbare. Det är vad vi kallar en win-win-situation.

Är andra optimeringstekniker fortfarande nödvändiga?

Ja och nej.

Vissa optimeringar som syftar till att minska webbförfrågningar blir överflödiga. Om din webbplats medför beräkningstid för att "kombinera" JS, CSS och andra filer, har det faktiskt blivit en overheadkostnad. Varje tid som "slösas bort" med de ovan nämnda ineffektiviteterna är inte längre nödvändigt.

Å andra sidan bör sådana optimeringar som caching, minskning av resursens storlek, leverans av innehåll över en CDN, val av en stor värdserver och andra optimeringar som adresserar olika typer av ineffektivitet, vara kvar.

Det fantastiska med HTTP / 2 är att det inte bara gör att din webbplats laddas snabbare, det leder också till att din webbplats blir säkrare. Det finns inget som hävdar att det finns fördelar för båda dessa. HTTP / 2 är nästa steg för att göra hela webben snabbare. Låt oss alla vara en del av det och få det att hända.