Hlavička Pragma a její místo v HTML
|
Velmi často se ve zdrojových kódech HTML stránek potkávám se zajímavým mýtem a to s následujícím tagem:
<meta http-equiv="pragma" content="no-cache">
Autor se tím pravděpodobně pokouší docílit toho, aby se jeho stránka necachovala. Přejdu-li to, že vypnutí cachování je nesmysl už z pohledu škálování výkonu webové aplikace, tak stejně užití pragmy nemá hlubšího významu.
Proč je použití Pragma:no-cache nesmysl
- Hlavička
Pragma
s hodnotouno-cache
je součástí specifikace HTTP 1.1 z historických důvodů a je dnes plně nahrazena hlavičkouCache-Control
. - Hlavička
Pragma
je pouze hlavičkou požadavku a v odpovědi nemá opodstatnění.
Hlavičku Pragma:no-cache posílali klienti HTTP/1.0 když nechtěli dostat cachovanou odpověď z lokální nebo proxy cache, ale přímo od serveru, který volali. Posílat ji tedy v odpovědi (natož v HTML) nemá žádný význam. Někdo by mohl podotknout, že mu to funguje. Mícrosoft na to říká: strkejte si pragmu do HTML, ale my vás stejně budem cachovat. Mozilla raději řídí cachování pomocí HTTP hlaviček a tento tag také ignoruje.
Závěr
Nejprve si rozmyslete, zda je pro vás zakázání cachování opravdu přínosné – v 99% případů nebude. Pokud stejně nebudete chtít cachovat (každý požadavek bude váš server muset vždy zpracovat, bude muset protéct po vaší lince atd.), posílejte HTTP hlavičku Cache-control
s hodnotou no-cache
. Vkládání do meta stránky nemá opodstatnění, zbytečně tak zvětšíte opověď a prohlížeče to stejně většinou ignorují.