0xDEADBEEF

RSS odkazy english edition
««« »»»

Kešování na webu

26. 9. 2020

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ší, protože 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

píše k47 (@kaja47, k47)