HTTP / 2 er en ny måte å gjør nettstedet ditt laster mye raskere ved å eliminere mange ineffektiviteter knyttet til den gjeldende versjonen av HTTP. Den største tingen om det? Du trenger ikke å gå mye for å få det oppe og går.

Eller gjør du?

Hva er HTTP / 2?

Når HTTP1 og HTTP1.1 ble opprinnelig utviklet, var nettet veldig forskjellig fra det det er i dag. Nettsteder hadde færre ressurser (JavaScript-filer, CSS-filer, bilder) enn i dag. Tilkoblinger til Internett var ikke veldig fort, og brukerne var ikke veldig kresne med nettsider lastingshastighet.

Brukere begynner å bli kløende fingre når et nettsted tar lengre tid enn 3 sekunder for å vise et svar.

Du var glad for at et nettsted lastet fullstopp. Du har kanskje hemmelig klaget over at lastingen var treg. Men du kunne ikke virkelig gjøre mye om det. Det skyldes at den langsomme innlastingstiden vanligvis kommer fra faktorer som var uavhengige av webserveren og teknologien du brukte. For det meste var det den faktiske internettforbindelsen som var den største begrensningsfaktoren.

Rask frem til i dag. Great nettsider lasting ganger er målt i millisekunder snarere enn sekunder. Brukere begynner å bli kløende fingre når et nettsted tar lengre tid enn 3 sekunder for å vise et svar. I en slik situasjon begynner ineffektiviteten i millisekunder knyttet til de opprinnelige versjonene av HTTP å gjøre en reell forskjell. Det er derfor du får så mange artikler som diskuterer hvordan du gjør nettstedet ditt raskere . Fordi millisekunder betyr noe.

Den nye versjonen av HTTP, kjent som HTTP / 2 adresserer spesifikke kjente problemer med HTTP. Dens mål er å løse en rekke problemer som har blitt mer uttalt da nettverket har utviklet seg til større og større nettsteder med mange flere CSS, JS og bildefiler enn opprinnelig forventet.

Men hva er galt med HTTP1.x, og hvorfor bruker vi så mye arbeid som gjør det raskere?

Problemene med HTTP1.x

HTTP1.x har en rekke iboende problemer. Faktisk, la oss avstå fra å kalle dem problemer. HTTP1.x har flere måter der det kan være mer effektivt.

  1. HTTP 1.x er tekstbasert: opprinnelig var ideen at HTTP1.x burde være menneskelig lesbar, slik at den var helt tekstbasert. Per definisjon har alle tekstbaserte protokoller ineffektivitet knyttet til dem, for eksempel hvite plass, koblingsbrudd, kapitalisering, etc.
  2. Bare én fil er i overføring til enhver tid: Dette er et av de største problemene med 1.x-versjoner av HTTP. Tenk deg å være en leverandør som bare kan levere en pakke om gangen. De må gå tilbake til basen hver gang de trenger å levere den neste pakken.
  3. Hundrevis av forespørsler kreves for dagens nettsider: Å ha mer sofistikerte temaer betyr at størrelsen på nettsidene og antall ressurser vokser. Og det tar også tid å laste hver ressurs. Husk at vår "deliveryman" må gå tilbake til base hver gang, de er ikke i stand til å overføre mer enn en fil av gangen.
  4. Hver forbindelse er en tung teknisk operasjon: Siden hundrevis av tilkoblinger er påkrevd, begynner det å akkumulere alvorlige overhead. Når lastetiden måles i millisekunder, begynner den kombinerte tiden som kreves for å opprette en forbindelse for hundrevis av ressurser, betydelig.

Mange ganger måtte webdesignere gjennomføre konkrete tiltak for å redusere disse ineffektivitetene. Løsninger som CSS sprites, minifisering og kombinering av filer er ment å overvinne problemer med å laste inn nettsider.

Disse er - i hovedsak - løsninger fremfor rettelser.

Hvordan HTTP / 2 løser problemene med HTTP1.x

HTTP / 2 er designet og utviklet seg fra SPDY , en protokoll utformet på Google rettet mot å gjøre nettet 2x raskere. Den adresserer HTTP-problemer på følgende måte

  1. HTTP / 2 er beregnet for forbruk av maskiner (nettleseren din og nettstedets webserver) i stedet for mennesker. Det er binært i stedet for tekstbasert og gjør det iboende mer effektivt. Overføring og analyse av dataene er raskere ved bruk av binære protokoller.
  2. Flere filer kan overføres samtidig på samme tilkobling . Fiksinger ble implementert slik at du kan rense ressurser på samme forbindelse. Snarere enn å måtte åpne en ny tilkobling hver gang (vår leverandør går tilbake til basen), kan alle ressursene bli båret på samme forbindelse (vår leverandør dumper alt i en vare og tar alt i en enkelt tur).
  3. Server trykk for å sende filer som kreves av nettleseren. I HTTP1.x er det nettleseren som spør webserveren for ressursene det krever. HTTP Server Push (implementert som en del av HTTP / 2) gjør at serveren kan begynne å sende ressurser som den vet at nettleseren vil trenge. For eksempel kan du instruere serveren om ikke å vente på at nettleseren skal be om CSS, JS og andre ressursfiler som nettleseren vil trenge uansett.
  4. HTTP-pakkehode og andre optimaliseringer - disse er tekniske forbedringer som er utformet for å forbedre effektiviteten av overføringene

Hva kreves for å aktivere HTTP2?

Ved å ikke støtte HTTP / 2 over ukrypterte forbindelser, er nettstedseierne sterkt bevæpnet til å implementere HTTPs for deres nettsted.

Tilbake i begynnelsen av artikkelen sa vi at det ikke kreves mye innsats fra slutten for å aktivere HTTP / 2. Aktivering av HTTP / 2 er noe som må gjøres på webservernivå. De fleste webservere som Apache, Nginx, IIS og andre store webservere har allerede støtte for HTTP / 2.

Hvis du kjører din egen webserver, trenger du bare å installere og aktivere HTTP / 2-bibliotekene. Hvis nettstedet ditt er vert med et vertsfirma, må du kontakte firmaet om webserveren allerede er aktivert for HTTP / 2.

Fangsten? Sikker sertifikater

Kanskje det var for godt til å være sant. Vi har nettopp diskutert hvordan webservere allerede støtter HTTP / 2 fullt ut.

De fleste store nettlesere støtter også HTTP / 2. Men de har også valgt å bare støtte HTTP / 2 i kryptert modus. Årsaken til dette er at det har vært en sterk bevegelse for å aktivere HTTPS (kryptering) over hele nettet. Slike tiltak som HTTPS overalt sterkt presse behovet for HTTPS på alle nettsteder.

Ved å ikke støtte HTTP / 2 over ukrypterte forbindelser, er nettstedseierne sterkt bevæpnet til å implementere HTTPs for deres nettsted.

Selvfølgelig er dette ikke nødvendigvis en dårlig ting. Implementering av HTTPS har betydelige sikkerhets- og personvernfordeler. Med bedrifter som kommer sammen for å danne en sertifiseringsinstans som heter La oss kryptere For å tillate gratis sikre sertifikater blir den totale kostnaden for å faktisk skaffe et sertifikat og implementerer HTTPS mye billigere. Dette var relativt dyrt frem til for en tid siden.

Implementering av HTTPS er ikke noe du burde gjøre uten å gi den den nødvendige due tanke. Du kan sikkert ønske å diskutere dette med din pålitelige webutvikler eller noen med nok teknisk ekspertise. I de fleste tilfeller bør ditt vertsfirma være i stand til å veilede deg gjennom dette.

Selvfølgelig anbefales det sterkt at du implementerer HTTPS. I tillegg til den ekstra sikkerheten, skal du få muligheten til å aktivere HTTP / 2 og gjøre nettstedet ditt raskere. Det er det vi kaller en vinn-vinn-situasjon.

Er andre optimaliseringsteknikker fortsatt nødvendige?

Ja og nei.

Enkelte optimaliseringer for å redusere webforespørsler blir overflødige. Hvis nettstedet ditt påløper beregningstid for å "kombinere" JS, CSS og andre filer, har dette faktisk blitt en overheadkostnad. Hver gang "bortkastet" adressering av de ovennevnte ineffektivitetene er ikke lenger nødvendig.

På den annen side bør slike optimaliseringer som caching, reduksjon av ressursstørrelsen, levering av innhold over en CDN, valg av en stor hosting server og andre optimaliseringer som adresserer ulike typer ineffektivitet, forbli på plass.

Det gode med HTTP / 2 er at det ikke bare gjør at nettstedet ditt lastes raskere, det presser deg også til å gjøre nettstedet ditt mer sikkert. Det er ingen som argumenterer for at det er fordeler med begge disse. HTTP / 2 er neste skritt i å gjøre hele Internett raskere. La oss alle være en del av det og få det til å skje.