Kešování na webu
Dělám si tu poznámku pro sebe, kdybych to někdy v budoucnu zas potřeboval.
Pro kešování můžu poslat hlavičky Last-Modified
a ETag
.
První říká, že objekt byl naposledy změněn v době X. Klient v následném dotazu
pošle hlavičku If-Modified-Since: X
, která se ptá: Mám verzi z času X, změnilo
od té doby něco? Jstli ano, 200 OK
a nová verze, jinak 304 Not Modified
a konec komunikace.
ETag
je mocnější, neudává jen bod na časové ose, ale libovolné jméno
verze. S tím se dá dělat spousta zajímavých věcí jako CAS nebo optimistické
aktualizace.
ETag je nebezpečný, protože může sloužit ke sledování
uživatelů. Server pro každého vygeneruje unikátní ETag
a ten
funguje úplně stejně jako cookie.
Aby browser posílal If-Modified-Since
, stačí odeslat hlavičku
Last-Modified
, nic dalšího není třeba, žádné Cache-Control
, nic. Aspoň
firefox a chrome se tak chovají.
K tématu: video