Úvod do vyrovnávacej pamäte HTTP

Som si istý, že ste si všimli, že pri prvom otvorení webovej stránky trvá načítanie nejaký čas. Keď ho však po určitom čase znova otvoríte, web bude omnoho rýchlejšie. Predstavte si, že ak sa stránka načíta zakaždým v rovnakom čase, aký by bol pocit pomalého prehliadania. To všetko je vďaka šikovnému nápadu nazvanému HTTP Caching. Pozrime sa, čo to je, ako to funguje a ako sa používa na to, aby sa prehľadávanie internetu stalo rýchlejším zážitkom.

Čo je to HTTP cache?

HTTP Caching je myšlienka ukladania niektorých bežne alebo často používaných údajov na miesto, ku ktorému je rýchly prístup. Vďaka tomu existuje veľmi dobrá šanca, že k najdôležitejším údajom je možné pristupovať oveľa rýchlejšie, pretože počítač sa nemusí dostať príliš ďaleko, aby ich získal.

V prípade prehliadania webu sa ukladanie do vyrovnávacej pamäte zvažuje, keď váš webový prehľadávač, napríklad Chrome, uloží kópiu webovej stránky alebo webovej aplikácie do miestneho úložiska. Akonáhle je webová stránka uložená do vyrovnávacej pamäte, webový prehľadávač nebude musieť znova sťahovať všetky údaje zo servera, čím sa prehľadávanie výrazne zrýchli.

Napríklad, akonáhle je súbor CSS webovej stránky stiahnutý, prehliadač ho nemusí stiahnuť pre každú stránku relácie. To isté možno povedať o mnohých súboroch JavaScriptu, obrázkoch (napríklad Logo lokality a ikony sociálnych médií) a dokonca aj o nejakom dynamickom obsahu. Vyrovnávacia pamäť je povolená pomocou hlavičiek vyrovnávacej pamäte.

Hlavičky vyrovnávacej pamäte v HTTP

HTTP Caching má dva hlavné hlavičky vyrovnávacej pamäte, prvý sa nazýva „Cache-Control“ a druhý sa nazýva „Expire“. Pozrime sa na obe:

Cache-Control

Cache-Control môžete považovať za prepínač na prepínanie vyrovnávacej pamäte v prehliadači používateľa. Po pridaní tejto hlavičky umožňuje ukladanie do vyrovnávacej pamäte pre všetky podporované webové prehliadače. Ak táto hlavička nie je k dispozícii, žiadny prehľadávač nebude uchovávať vyrovnávaciu pamäť obsahu webovej stránky, aj keď podporuje ukladanie do pamäte cache.

Ovládanie vyrovnávacej pamäte má dva typy nastavení ochrany osobných údajov, prvé nastavenie je verejné a druhé nastavenie súkromné.

V prípade verejnosti môžu prostriedky ukladať do vyrovnávacej pamäte ľubovoľný sprostredkovateľ proxy, ako napríklad siete na doručovanie obsahu (CDN).

Záhlavie Cache-Control so súkromnou odpoveďou povie prehliadaču, že ukladanie do vyrovnávacej pamäte sa vykoná iba pre jedného používateľa a nie pre sprostredkujúceho proxy.

Hodnota „max-age“ v hlavičke Cache-Control nastavuje čas, po ktorý bude obsah vyrovnávacej pamäte. Tento čas je v sekundách.

Cache-Control:public, max-age=31536000

vyprší

Hlavička Expires sa používa, keď je v kóde prítomná funkcia Cache-Control. Toto je jednoduchá hlavička HTTP cache, ktorá nastavuje dátum, od ktorého sa akýkoľvek prostriedok vyrovnávacej pamäte považuje za neplatný. Akonáhle vyrovnávacia pamäť vyprší a používateľ načíta webovú stránku, webový prehliadač jednoducho znova požiada o celý obsah stránky.

Podmienené žiadosti

Vyššie uvedené hlavičky jednoducho povedia prehľadávaču, kedy majú načítať údaje z webového servera. Na druhej strane podmienené žiadosti povoľujú prehliadaču, ako ho získať. Podmienené žiadosti informujú prehliadač, ako môže požiadať server, či je kópia údajov v pamäti cache zastaraná.

V tomto procese prehliadač odošle niektoré údaje o zdrojoch, ktoré uložil do pamäte cache, a po prečítaní týchto údajov sa server rozhodne, či sú dáta zastarané alebo nie.

Časové požiadavky

V časových požiadavkách sa kontroluje, či sa požadovaný prostriedok na serveri zmenil alebo nie. Ak je kópia z vyrovnávacej pamäte v prehliadači najnovšia, server vráti kód 304.

Ak chcete podmienenú žiadosť nastaviť na základe času, môžete v záhlaví odpovede použiť výraz „Naposledy upravené“.

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

Content-Based

V požiadavkách založených na obsahu sa kontroluje MD5 Hash (alebo akákoľvek iná realizovateľná možnosť) na kópiu servera aj kópiu vyrovnávacej pamäte. Toto zistí, či sú údaje rovnaké alebo nie, v prípade, že sa údaje líšia, kontrolný súčet MD5 sa nezhoduje a server pošle novú kópiu zdrojov.

To sa deje pomocou „ETag“ v hlavičke. Jeho hodnotou je súhrn zdrojov.

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

viditeľnosť

Takmer všetky moderné prehliadače obsahujú niektoré vývojové nástroje, ktoré vám umožňujú kontrolovať zdroje, zdrojový kód a ďalšie aspekty webovej stránky. Medzi nimi nájdete nástroj na zobrazenie hlavičiek vrátených ľubovoľnou aplikáciou.

V prehliadači Google Chrome zobrazíte tieto hlavičky kliknutím pravým tlačidlom myši na ľubovoľnú prázdnu oblasť webovej stránky a kliknutím na položku „Skontrolovať“ alebo stlačením klávesov CTRL + SHIFT + I otvoríte program DevTools. V tomto nástroji kliknite na kartu Sieť a stlačením kombinácie klávesov CRTL + R znova načítať všetky hlavičky stránky.

Používať prípady v HTTP vyrovnávacej pamäti

Nižšie sú uvedené príklady použitia HTTP cache, ktoré sú nasledujúce:

Pre statické aktíva

V prípade statických prvkov stránky, ako sú obrázky, súbory JS a akékoľvek súbory CSS, môžete zvoliť agresívne ukladanie obsahu do vyrovnávacej pamäte. Ak tieto súbory nebudete musieť načítať, bude to mať za následok pôsobivé zlepšenie výkonu. V tomto prípade použitia choďte do hlavičky vyrovnávacej pamäte s hodnotou maximálneho veku vyššou ako jeden mesiac alebo dokonca rok.

Cache-Control:public; max-age=31536000

Pre dynamický obsah

V prípade dynamického obsahu stránky sa musíte zamyslieť nad tým, aké súbory by mal prehliadač ukladať do vyrovnávacej pamäte a ako dlho. V prípade, že sa obsah bude často meniť, musíte sa uistiť, že čas, ktorý vyberiete pre ukladanie do vyrovnávacej pamäte, nebude mať pre používateľa žiadny problém.

Uloženie súkromného obsahu do vyrovnávacej pamäte

Ako sme diskutovali v časti Cache-Control, v prípade, že je obsah stránky súkromnej povahy, môžete zabrániť tomu, aby bola cacheovaná sprostredkovateľskými proxy, ako sú CDN, pridaním „Cache-Control: private“ do hlavičky.

Ďalším bezpečnejším prístupom nie je ukladanie súkromného obsahu do vyrovnávacej pamäte.

Implementácia vyrovnávacej pamäte HTTP

Teraz, keď viete, čo je HTTP Caching a ako to funguje, pozrime sa, ako ho môžete implementovať na svoje webové stránky. Implementácia vyrovnávacej pamäte HTTP je trochu odlišná pre rôzne typy serverov. V našom prípade sa pozrime na implementáciu ukladania do pamäte cache pomocou súboru .htaccess.

Ak chcete povoliť ukladanie do vyrovnávacej pamäte na webe, môžete do servera .htaccess pridať hlavičky napríklad:

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

Vyššie uvedené budú ukladať do vyrovnávacej pamäte všetky súbory vo formáte pdf, flv, jpg.webp a ďalšie uvedené formáty uvedené v „File Match“ na jeden rok.

záver

HTTP Caching je jedným z najdôležitejších trikov, vďaka ktorým je prehliadanie vašich stránok pre vašich návštevníkov rýchlejšie a teraz, keď vidíte, ako to funguje, môžete ich implementovať na svoje weby a webové aplikácie, aby ste ich pre svojich používateľov rýchlejšie a rýchlejšie na uloženie šírky pásma servera.

Odporúčané články

Toto bol sprievodca HTTP cache. Tu sme diskutovali o implementácii, Podmienených požiadavkách, hlavičke vyrovnávacej pamäte a Prípadoch použitia HTTP. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. Zistite, čo je HTML
  2. Ako nainštalovať Github?
  3. Čo je MapReduce v Hadoope?
  4. Sprievodca začiatočníkmi príkazov na uzol
  5. Cookies HTTP zabezpečenia

Kategórie: