Jak cítit tlukot vašeho srdce

Co se stane, pokud nenastavíte cache-control záhlaví? Určuje HTTP výchozí chování, kterým by se klienti měli řídit, nebo je na klientech, aby se rozhodli?

V prohlížeči Chrome jsem viděl některé požadavky Javascript, které nemají cache-control záhlaví se zobrazují jako 200 (from disk cache). Optimalizuje to Chrome?

V IE jsem viděl, že se to ukázalo jako 304 (not modified).

Jak tomu lépe rozumím?

  • 1 „žádné záhlaví mezipaměti“, což znamená žádné záhlaví Cache-Control, nebo opravdu žádné záhlaví mezipaměti? Cache-control není jediná hlavička, která ovlivňuje ukládání do mezipaměti. Většina webových serverů odešle záhlaví Last Modified pro statická aktiva, jako jsou soubory Javascript.

Pokud není Cache-Control záhlaví a č Expires záhlaví, ale existuje Last-Modified záhlaví (které většina webových serverů odesílá ve výchozím nastavení pro statické prostředky), použije většina prohlížečů heuristická svěžest k určení, jak dlouho bude dané dílo uloženo do mezipaměti.

Typický výpočet pro tento (což je ten, který navrhuje RFC 7234) je:

(current time - last modified time) / 10 

Například pokud poslední změněný čas pro obrázek uvádí, že byl naposledy změněn před 60 dny, prohlížeč by se mohl rozhodnout, že by mohl rozumně použít verzi tohoto obrázku v místním mezipaměti po dobu 6 dnů před kontrolou nové verze.

Všimněte si, že ve většině případů, pokud stisknete Obnovit, jste vyprávění prohlížeč načíst novou verzi, takže v této situaci by tato logika neplatila.

Čerstvost podle skutečných prohlížečů:

  • Chrome stále používá staré „10% času od last_modified“, což odpovídá návrhu RFC
  • Totéž platí pro Safari
  • Firefox dnes používá min(one week, (current time - last modified time) / 10). Takže svěžest je nikdy více než jeden týden
  • 3 A pokud není Last-Modified záhlaví?
  • Toto je odpověď, kterou jsem hledal. Zajímalo by mě, jaké výchozí prohlížeče mají různé prohlížeče.
  • @ bertonc96 Zdá se, že v tomto případě je 0. Viz například toto.

Pracoval pro vás: Charles Robertson | Chcete nás kontaktovat?