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