Introduksjon til HTTP-hurtigbufring

Jeg er sikker på at du har lagt merke til at det tar litt tid å laste inn når du åpner et nettsted for første gang. Imidlertid, når du åpner det igjen etter en tid, lodes nettstedet mye raskere. Tenk om et nettsted tok samme tid å laste hver gang, hvor langsom surfing ville føles. Vel, alt dette takket være en fin idé som heter HTTP Caching. La oss se på hva det er, hvordan det fungerer og hvordan det brukes til å gjøre Internett-surfing til en raskere opplevelse.

Hva er HTTP-hurtigbufring?

HTTP-hurtigbufring er ideen om å lagre ofte brukte eller ofte brukte data et sted som er raskt tilgjengelig. Med dette er det en veldig god sjanse for at mest nødvendige data kan nås mye raskere fordi datamaskinen ikke trenger å nå for langt for å få det.

Når det gjelder nettlesing, vurderes hurtigbufring når nettleseren din, for eksempel Chrome, lagrer en kopi av et nettsted eller en nett-app på det lokale lagringsstedet. Når en nettside er bufret, trenger ikke en nettleser å laste ned alle dataene fra serveren, og dette vil gjøre surfingen mye raskere.

Når en CSS-fil på et nettsted for eksempel er lastet ned, trenger ikke en nettleser å laste den ned for hver side av økten. Det samme kan sies for mange JavaScript-filer, bilder (for eksempel logo for nettstedet og ikoner for sosiale medier) og til og med noe dynamisk innhold. Bufring aktiveres ved å bruke hurtigbufferhoder.

Cache Headers i HTTP

HTTP-hurtigbuffer har to hovedbuffertitler, den første kalles “Cache-Control” og den andre kalles “Expire”. La oss se på begge deler:

Cache-Control

Du kan vurdere Cache-Control som en bryter for å slå på hurtigbufferen i brukerens nettleser. Når denne overskriften er lagt til, aktiverer den hurtigbufring for alle støttede nettlesere. Hvis denne overskriften ikke er til stede, vil ingen nettlesere beholde en hurtigbuffer for innholdet på websiden, selv om den støtter hurtigbufring.

Cache-kontrollen har to typer personverninnstillinger, den første er offentlig og den andre er privat.

Når det gjelder offentlig, kan ressursene bufres av en hvilken som helst mellomtjener som for eksempel Content Delivery Networks (CDN).

En Cache-Control-topptekst med privat respons vil fortelle nettleseren at hurtigbufringen bare blir gjort for en enkelt bruker og ikke for noen mellomtjener.

Verdien "max-age" i Cache-Control-overskriften angir klokkeslettet for innholdet. Denne tiden er på sekunder.

Cache-Control:public, max-age=31536000

utløper

Utløpsoverskriften brukes når Cache-Control er til stede i koden. Dette er en enkel HTTP Cache-overskrift som angir en dato fra hvilken cache-ressurs blir ansett som ugyldig. Når hurtigbufferen er utløpt og brukeren laster inn nettstedet, vil en nettleser ganske enkelt be om alt innholdet på siden igjen.

Betingede forespørsler

Over diskuterte overskrifter ganske enkelt fortelle nettleseren når du skal hente dataene fra webserveren. Betingede forespørsler derimot, fortell nettleseren hvordan du kan hente den. Betingede forespørsler forteller en nettleser hvordan den kan spørre serveren om kopien av data i cachen er utdatert.

I denne prosessen sender nettleseren noen data om ressurser den har lagt inn i minnet, og etter å ha lest disse dataene bestemmer serveren om dataene er utdaterte eller ikke.

Tidsbaserte forespørsler

I tidsbaserte forespørsler blir det sjekket om den forespurte ressursen ble endret på serveren eller ikke. Hvis den hurtigbufrede kopien i nettleseren er den siste, vil serveren returnere kode 304.

For å angi betinget forespørsel på tidsbasis, kan du bruke “Sist endret” i svarhodet.

Cache-Control:public, max-age=25998579
Last-Modified: Fri, 08 Jul 2018 15:25:00 GMT

Content-Based

I innholdsbaserte forespørsler blir MD5 Hash (eller et annet levedyktig alternativ) kontrollert for både serverkopiering og hurtigkopiering. Dette forteller om dataene er like eller ikke, i tilfelle dataene er forskjellige, vil MD5-kontrollsummen ikke samsvare og serveren vil sende en ny kopi av ressursene.

Dette gjøres via "ETag" i overskriften. Verdien av det er fordøyelsen av ressursene.

Cache-Control:public, max-age=25998579
ETag: "496d7131f15f0fff99ed5aae”

Synlighet

Nesten alle moderne nettlesere inkluderer noen utviklingsrelaterte verktøy som lar deg sjekke ressurser, kildekode og andre aspekter av en webside. Blant dem kan du finne et verktøy for å se overskriftene som returneres av ethvert program.

For å se disse topptekstene på Google Chrome, kan du høyreklikke på hvilket som helst tomt område på en webside og klikke på "Inspiser" eller trykke CTRL + SHIFT + I for å åpne DevTools. I dette verktøyet klikker du på Nettverk-fanen og trykker CRTL + R for å laste inn for å se alle overskriftene på siden.

Bruk tilfeller i HTTP-hurtigbufring

Nedenfor er noen bruker tilfeller av HTTP-hurtigbufring som er som følger:

For statiske eiendeler

For statiske eiendeler på en side som bilder, JS-filer og eventuelle CSS-filer, kan du velge å hurtigbufrere innholdet. Å slippe å laste disse filene vil resultere i imponerende ytelsesforbedring. For denne brukssaken, gå til Cache-Control Header med en maksimal aldersverdi på mer enn en måned eller til og med et år.

Cache-Control:public; max-age=31536000

For dynamisk innhold

Når det gjelder dynamisk innhold på en side, må du tenke selv for hvilke filer som nettleseren skal buffer og hvor lenge. I tilfelle innholdet endres ofte, må du sørge for at tidsvarigheten du velger for hurtigbufring ikke medfører noe problem for brukeren.

Bufring av privat innhold

Som vi diskuterte i Cache-Control-delen, i tilfelle innholdet på siden er privat, kan du forhindre at den blir lagret av mellomliggende proxyer som CDN-er ved å legge til “Cache-Control: private” i overskriften.

En annen tryggere tilnærming er å ikke cache noe privat innhold i det hele tatt.

Implementering av HTTP-hurtigbuffer

Nå som du vet hva HTTP-hurtigbufring er og hvordan det fungerer, la oss se på hvordan du kan implementere det på nettstedet ditt. Implementering av HTTP-hurtigbufring er litt forskjellig for forskjellige servertyper. La oss i vårt tilfelle se på implementering av hurtigbufring via .htaccess-filen.

For å aktivere hurtigbufring på stedet, kan du legge til topptekstene i .htaccess-filen på serveren din, for eksempel:

FilesMatch "\.(ico|pdf|flv|jpg.webp|jpeg.webp|png|gif|js|css|swf)$"
Header set Cache-Control "max-age=31536000, public"
/FilesMatch

Ovennevnte vil lagre alle til, pdf, flv, jpg.webp og andre nevnte formater nevnt i "File Match" i ett år.

Konklusjon

HTTP-hurtigbufring er et av de viktigste triksene som gjør surfing på nettstedet ditt til en raskere opplevelse for de besøkende, og nå som du kan se hvordan det fungerer, kan du implementere det på nettstedene og webappene dine for å gjøre dem raskere for brukerne dine og for lagring av serverbåndbredde.

Anbefalte artikler

Dette har vært en guide til HTTP-hurtigbufring. Her diskuterte vi implementering, Betingede forespørsler, cache header og Bruk tilfeller av HTTP. Du kan også gå gjennom andre foreslåtte artikler for å lære mer -

  1. Lær hva som er HTML
  2. Hvordan installerer Github?
  3. Hva er MapReduce i Hadoop?
  4. Nybegynnerveiledning for nodekommandoer
  5. HTTP-informasjonskapsler | Sikkerhet