Funkce header() je v PHP velmi používaná a představím některé metody, jak ji použít pro implementaci cache stránky, ale před použitím headeru je třeba poznamenat, že před ní nelze udělat žádný výstup, včetně mezer.
Nastavení, která nejsou cacheována
V manuálu všichni píšeme o tom, jak nastavit cache tak, aby kód nebyl cacheován:
A při nastavování musíte také brát v úvahu, že před hlavičkou nesmí být žádný výstup, jinak bude nastavení hlavičky neplatné.
Nastavení cache stránek nebo obrázků
Jak nastavit cache pro stránku, i když víme, že existují způsoby, jak to udělat, například E-TAG. Samozřejmě existují i jednoduchá nastavení: Například děláme MD5 na obsahu před výstupem a považujeme ho za e-tag, pokud se nezmění, nebude mít žádný dopad. (To je podobné stavovému kódu serveru 304, kde požadovaná stránka nebyla od posledního požadavku změněna.) Když server tuto odpověď vrátí, webový obsah se nevrátí. ) Existují i jiné způsoby:
Cache na 1 hodinu, hlavně čas expirace musí být nastaven na gmdate, ne na datum, což je třeba poznamenat, ostatní jsou podobné. Max-age by měl být kompatibilní s expire.
Pro dynamický obsah generovaný PHP stačí vydat hlavičku, která vynutí použití cache, ještě před výstupem obsahu, například následující kód vyžaduje, aby prohlížeč soubor ukládal do cache po dobu 1 měsíce:
|