Úvod do mezipaměti HTTP

Jsem si jistý, že jste si všimli, že při prvním otevření webu trvá načtení nějakou dobu. Když ji však po nějaké době znovu otevřete, web bude mnohem rychlejší. Představte si, že pokud se web pokaždé načte ve stejnou dobu, jaký pocit by mělo pomalé procházení. To vše díky šikovnému nápadu zvanému HTTP Caching. Pojďme se podívat, co to je, jak to funguje a jak se používá k tomu, aby bylo procházení Internetu rychlejší.

Co je HTTP Caching?

HTTP Caching je myšlenka ukládání některých běžně nebo často používaných dat na místo, kde je rychlý přístup. Díky tomu existuje velmi dobrá šance, že k většině potřebných dat bude možné přistupovat mnohem rychleji, protože počítač nemusí dostat příliš daleko, aby je získal.

V případě webového prohlížení se ukládání do mezipaměti zvažuje, když váš webový prohlížeč, například Chrome, uloží kopii webu nebo webové aplikace do místního úložiště. Jakmile je web uložen do mezipaměti, webový prohlížeč nebude muset znovu stahovat všechna data ze serveru, což zrychlí prohlížení.

Například po stažení souboru CSS z webu jej nemusí prohlížeč stáhnout pro každou stránku relace. Totéž lze říci o mnoha souborech JavaScriptu, obrázcích (např. Logo webu a ikonách sociálních médií) a dokonce i o nějakém dynamickém obsahu. Ukládání do mezipaměti je povoleno pomocí záhlaví mezipaměti.

Záhlaví mezipaměti v HTTP

HTTP Caching má dvě hlavní záhlaví mezipaměti, první se nazývá „Cache-Control“ a druhá se nazývá „Expire“. Pojďme se podívat na oba:

Cache-Control

Cache-Control můžete považovat za přepínač pro přepínání mezipaměti v uživatelském prohlížeči. Po přidání této hlavičky umožňuje ukládání do mezipaměti pro všechny podporované webové prohlížeče. Pokud tato záhlaví není k dispozici, žádný prohlížeč nebude udržovat mezipaměť obsahu webové stránky, i když podporuje ukládání do mezipaměti.

Řízení mezipaměti má dva typy nastavení ochrany osobních údajů, první je veřejné a druhé soukromé.

V případě veřejné mohou prostředky ukládat do mezipaměti libovolný zprostředkující proxy, například sítě pro doručování obsahu (CDN).

Záhlaví Cache-Control se soukromou odpovědí prozradí prohlížeči, že ukládání do mezipaměti bude provedeno pouze pro jednoho uživatele, nikoli pro žádné zprostředkující proxy.

Hodnota „max-age“ v záhlaví Cache-Control nastavuje čas, po který bude obsah mezipaměti. Tento čas je v sekundách.

Cache-Control:public, max-age=31536000

Platnost vyprší

Záhlaví Expires se používá, když je v kódu přítomen Cache-Control. Toto je jednoduchá záhlaví HTTP cache, které nastavuje datum, od kterého je jakýkoli prostředek mezipaměti považován za neplatný. Jakmile vyprší platnost mezipaměti a uživatel načte web, webový prohlížeč jednoduše znovu požádá o veškerý obsah stránky.

Podmíněné žádosti

Výše diskutovaná záhlaví jednoduše řeknou prohlížeči, kdy načíst data z webového serveru. Na druhé straně podmíněné požadavky sdělují prohlížeči, jak je získat. Podmíněné požadavky prozradí prohlížeči, jak může požádat server, pokud je kopie dat v mezipaměti zastaralá.

V tomto procesu prohlížeč odešle některá data o prostředcích uložených v mezipaměti do své paměti a po přečtení těchto dat se server rozhodne, zda jsou data zastaralá nebo ne.

Časové žádosti

V časových požadavcích se kontroluje, zda byl požadovaný zdroj na serveru změněn nebo ne. Pokud je kopie v mezipaměti v prohlížeči nejnovější, server vrátí kód 304.

Chcete-li podmíněný požadavek nastavit na časové bázi, můžete použít v záhlaví odpovědi „Last-Modified“.

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

Na základě obsahu

V požadavcích založených na obsahu se kontroluje MD5 Hash (nebo jakákoli jiná životaschopná možnost) pro kopii serveru i kopii mezipaměti. To řekne, zda jsou data stejná nebo ne, v případě, že se data liší, kontrolní součet MD5 se neshoduje a server odešle novou kopii prostředků.

To se provádí pomocí „ETag“ v záhlaví. Jeho hodnotou je souhrn zdrojů.

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

Viditelnost

Téměř všechny moderní prohlížeče obsahují některé vývojové nástroje, které vám umožní kontrolovat zdroje, zdrojový kód a další aspekty webové stránky. Mezi nimi najdete nástroj k zobrazení záhlaví vrácených jakoukoli aplikací.

V prohlížeči Google Chrome zobrazíte tato záhlaví klepnutím pravým tlačítkem myši na libovolnou prázdnou oblast webové stránky a kliknutím na tlačítko „Prohlédnout“ nebo stisknutím kláves CTRL + SHIFT + I otevřete DevTools. V tomto nástroji klikněte na kartu Síť a stisknutím CRTL + R znovu načtěte a zobrazte všechny záhlaví stránky.

Použití případů v HTTP mezipaměti

Níže uvádíme příklady použití HTTP Cachingu, které jsou následující:

Pro statická aktiva

U statických aktiv stránky, jako jsou obrázky, soubory JS a jakékoli soubory CSS, můžete zvolit agresivní ukládání obsahu do mezipaměti. Pokud tyto soubory nebudete muset načíst, bude to mít za následek působivé zlepšení výkonu. V tomto případě použijte záhlaví Cache-Control s maximální věkovou hodnotou více než měsíc nebo dokonce rok.

Cache-Control:public; max-age=31536000

Pro dynamický obsah

V případě dynamického obsahu stránky budete muset přemýšlet o tom, jaké soubory by měl prohlížeč mezipaměť a jak dlouho. V případě, že se obsah bude často měnit, musíte se ujistit, že doba, kterou vyberete pro ukládání do mezipaměti, nebude pro uživatele znamenat žádný problém.

Ukládání do mezipaměti soukromého obsahu

Jak jsme diskutovali v části Cache-Control, v případě, že je obsah stránky ve své podstatě soukromý, můžete zabránit mezipaměti zprostředkujícími proxy, jako jsou CDN, přidáním „Cache-Control: private“ do záhlaví.

Dalším bezpečnějším přístupem je nezachovávat vůbec žádný soukromý obsah.

Implementace HTTP mezipaměti

Nyní, když víte, co je HTTP Caching a jak to funguje, pojďme se podívat, jak jej můžete implementovat na svůj web. Implementace HTTP Caching se pro různé typy serverů trochu liší. V našem případě se podívejme na implementaci ukládání do mezipaměti pomocí souboru .htaccess.

Chcete-li povolit ukládání do mezipaměti na webu, můžete přidat záhlaví do souboru .htaccess na serveru například:

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

Výše uvedené budou na jeden rok ukládat do mezipaměti všechny soubory ve formátu pdf, flv, jpg.webp a další zmíněné formáty uvedené v „File Match“.

Závěr

HTTP Caching je jedním z nejdůležitějších triků, díky kterým je procházení vašeho webu rychlejším zážitkem pro vaše návštěvníky. Nyní, když vidíte, jak to funguje, můžete jej implementovat na svých webech a webových aplikacích, aby je pro vaše uživatele a pro uložení šířky pásma vašeho serveru.

Doporučené články

Toto byl průvodce HTTP mezipamětí. Zde jsme diskutovali implementaci, podmíněné požadavky, záhlaví mezipaměti a případy použití HTTP. Další informace naleznete také v dalších navrhovaných článcích -

  1. Zjistěte, co je HTML
  2. Jak nainstalovat Github?
  3. Co je MapReduce v Hadoopu?
  4. Průvodce začátečníky příkazy uzlu
  5. HTTP cookies | Bezpečnostní

Kategorie: