Uvod v HTTP predpomnjenje

Prepričan sem, da ste opazili, da je treba ob prvem odpiranju spletnega mesta naložiti nekaj časa. Ko pa ga čez nekaj časa znova odprete, spletno mesto zamrzne veliko hitreje. Predstavljajte si, če bi se spletno mesto vsakič naložilo enako, kako bi se počutilo počasno brskanje. No, to je vse zahvaljujoč vrhunski ideji, imenovani HTTP Caching. Oglejmo si, kaj je, kako deluje in kako se uporablja za brskanje po internetu hitreje.

Kaj je HTTP predpomnjenje?

HTTP predvajanje je ideja shranjevanja nekaterih pogosto ali pogosto uporabljanih podatkov na nekje hitro dostopnem mestu. S tem je zelo dobra možnost, da do najbolj potrebnih podatkov dostopate veliko hitreje, saj računalniku ni treba segati predaleč, da bi ga dobili.

V primeru brskanja po spletu se predpomnilnik šteje, ko vaš spletni brskalnik, kot je Chrome, shrani kopijo spletnega mesta ali spletne aplikacije v lokalni prostor za shranjevanje. Ko se spletno mesto predpomni, spletnemu brskalniku ne bo treba znova nalagati vseh podatkov s strežnika, zato bo brskanje veliko hitrejše.

Na primer, ko naloži datoteko CSS spletnega mesta, brskalniku ni treba, da ga naloži za vsako stran seje. Enako lahko rečemo za številne datoteke JavaScript, slike (na primer Logo mesta in ikone socialnih medijev) in celo nekatere dinamične vsebine. Predpomnjenje je omogočeno z uporabo glav predpomnilnika.

Glave predpomnilnika v HTTP

HTTP Caching ima dve glavni glavi predpomnilnika, prvo se imenuje "Cache-Control" in drugo se imenuje "Expire". Oglejmo si oba:

Cache-Control

Cache-Control lahko smatrate kot stikalo za vklop predpomnilnika v uporabniškem brskalniku. Ko je dodana ta glava, omogoča predpomnjenje za vse podprte spletne brskalnike. Če te glave ni, noben brskalnik ne ohrani predpomnilnika vsebine spletnih strani, tudi če podpira predpomnjenje.

Nadzor predpomnilnika ima dve vrsti nastavitev zasebnosti, prva je javna in druga zasebna.

V primeru Javnega lahko vire predpomni kateri koli vmesni posrednik, kot je omrežje za dostavo vsebine (CDN).

Glava predpomnilnika nadzora z zasebnim odgovorom bo brskalniku sporočila, da bo predpomnjenje izvedeno samo za enega uporabnika in ne za vmesni proxy.

Vrednost "max-age" v glavi Cache-Control določa čas, v katerem bo vsebina predpomnjena. Ta čas je v sekundah.

Cache-Control:public, max-age=31536000

Poteče

Glava Expires se uporablja, če je v kodi prisoten Cache-Control. To je preprosta glava predpomnilnika HTTP, ki določa datum, od katerega koli predpomnilni vir velja za neveljaven. Ko poteče predpomnilnik in uporabnik naloži spletno mesto, bo spletni brskalnik preprosto še enkrat zahteval vso vsebino strani.

Pogojne zahteve

Zgoraj obravnavane glave preprosto povedo brskalniku, kdaj naj naloži podatke s spletnega strežnika. Pogojne zahteve po drugi strani povedo brskalniku, kako ga lahko pridobi. Pogojne zahteve povedo brskalniku, kako lahko vpraša strežnik, če je kopija podatkov v predpomnilniku zastarela.

V tem postopku brskalnik pošlje nekaj podatkov o virih, ki jih je shranil v svoj pomnilnik, in potem, ko te podatke prebere, se strežnik odloči, ali so podatki zastareli ali ne.

Časovne zahteve

V časovno utemeljenih zahtevah se preveri, ali je bil zahtevani vir spremenjen na strežniku ali ne. Če je predpomnjena kopija v brskalniku najnovejša, bo strežnik vrnil kodo 304.

Če želite določiti pogojno zahtevo na čas, lahko v naslovu odgovora uporabite “Last-Modified”.

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

Vsebinsko

V vsebinskih zahtevah je MD5 Hash (ali katera koli druga izvedljiva možnost) preverjen tako za kopijo strežnika kot za predpomnilnik. To pove, ali so podatki enaki ali ne, če se podatki razlikujejo, se kontrolna vsota MD5 ne bo ujemala in bo strežnik poslal novo kopijo virov.

To se naredi prek "ETag" v glavi. Vrednost tega je prebava virov.

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

Vidnost

Skoraj vsi sodobni brskalniki vključujejo nekatera orodja, povezana z razvojem, ki vam omogočajo preverjanje virov, izvorne kode in drugih vidikov spletne strani. Med njimi lahko najdete orodje za prikaz glav, ki jih vrne katera koli aplikacija.

Če si želite ogledati te glave, v brskalniku Google Chrome lahko z desno miškino tipko kliknete katero koli prazno mesto spletne strani in kliknete »Pregledaj« ali pritisnete CTRL + SHIFT + I, da odprete program DevTools. V tem orodju kliknite jeziček Network in pritisnite CRTL + R, da se znova naloži, da vidite vse naslove strani.

Uporabite primere pri predpomnjenju HTTP

Spodaj je nekaj primerov uporabe predpomnilnika HTTP, ki so naslednji:

Za statična sredstva

Za statična sredstva strani, kot so slike, datoteke JS in datoteke CSS, se lahko odločite za agresivno predpomnjenje vsebine. Če teh datotek ne boste morali naložiti, se bo izboljšalo delovanje. V tem primeru poiščite glavo predpomnilnika z najvišjo vrednostjo več kot mesec ali celo leto.

Cache-Control:public; max-age=31536000

Za dinamične vsebine

V primeru dinamične vsebine strani boste morali sami razmisliti, katere datoteke naj se predpomnijo v brskalniku in koliko časa. Če se bo vsebina pogosto spreminjala, morate poskrbeti, da časovno trajanje, ki ga izberete za predpomnjenje, za uporabnika ne bo povzročilo nobenih težav.

Predvajanje zasebnih vsebin

Kot smo razpravljali v razdelku Cache-Control, lahko v primeru, da je vsebina strani zasebne narave, preprečite, da bi jo vmesni posredniki, kot so CDN, dodali v glavo, tako da v glavo dodate »Cache-Control: private«.

Drug varnejši pristop je, da sploh ne predpomnite nobene zasebne vsebine.

Izvajanje predpomnilnika HTTP

Zdaj, ko veste, kaj je HTTP predpomnjenje in kako deluje, poglejmo, kako ga lahko izvajate na svojem spletnem mestu. Izvedba predvajanja HTTP se za različne tipe strežnikov nekoliko razlikuje. V našem primeru si oglejmo izvajanje predpomnilnika prek datoteke .htaccess.

Če želite omogočiti predpomnjenje na mestu, lahko na primer dodate glave v datoteki .htaccess na vašem strežniku:

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

Zgornje bo predpomnilo vse v, pdf, flv, jpg.webp in druge omenjene formate, omenjene v "Ujemanje datotek" za eno leto.

Zaključek

HTTP predvajanje je eden najpomembnejših trikov, zaradi katerih je brskanje po spletnem mestu hitrejša izkušnja za vaše obiskovalce, zdaj pa, ko si lahko ogledate, kako deluje, ga lahko implementirate na svoja spletna mesta in v spletnih aplikacijah, tako da bodo hitrejši za vaše uporabnike in za shranjevanje pasovne širine vašega strežnika.

Priporočeni članki

To je vodnik za predpomnjenje HTTP. Tu smo razpravljali o izvedbenih, pogojnih zahtevah, glavi predpomnilnika in primerih uporabe HTTP. Če želite izvedeti več, lahko preberete tudi druge naše predlagane članke -

  1. Preberite, kaj je HTML
  2. Kako namestiti Github?
  3. Kaj je MapReduce v Hadoopu?
  4. Vodnik za začetnike ukazov vozlišč
  5. Piškotki HTTP | Varnost