Funkcia header() je v PHP veľmi používaná a predstavím niektoré spôsoby, ako ju použiť na implementáciu cache stránky, ale pred použitím hlavičky treba poznamenať, že pred ňou nie je možné vykonať žiadny výstup, vrátane medzier.
Nastavenia, ktoré nie sú uložené do vyrovnávacej pamäte
V manuáli všetci píšeme o tom, ako nastaviť cache tak, aby kód nebol cacheovaný:
A pri nastavovaní musíte tiež brať do úvahy, že pred hlavičkou nemôže byť žiadny výstup, inak bude nastavenie hlavičky neplatné.
Nastavenia cache stránok alebo obrázkov
Ako nastaviť cache pre stránku, hoci vieme, že existujú spôsoby, ako to urobiť, napríklad E-TAG. Samozrejme, existujú aj jednoduché nastavenia: Napríklad robíme MD5 na obsahu pred výstupom a považujeme ho za e-tag, pokiaľ sa nemení, nebude to mať žiadny vplyv. (Toto je podobné stavovému kódu servera 304, kde požadovaná stránka nebola od poslednej požiadavky zmenená.) Keď server vráti túto odpoveď, webový obsah sa nevráti. ) Existujú aj iné spôsoby:
Cache na 1 hodinu, hlavne čas vypršania musí byť nastavený na gmdate, nie na dátum, čo treba poznamenať, ostatné sú podobné. Max-age by mal byť kompatibilný s expire.
Pre dynamický obsah generovaný PHP stačí vypísať hlavičku, ktorá vynúti použitie cache, ešte pred výstupom obsahu, napríklad nasledujúci kód vyžaduje, aby prehliadač ukladal súbor do vyrovnávacej pamäte počas 1 mesiaca:
|