ETag (Entity Tag) er en HTTP-header, der identificerer en bestemt version af en ressource. Når browseren har en cachet kopi, kan den sende ETag-værdien tilbage i If-None-Match og spørge, om filen stadig er uændret. Matcher den, svarer serveren typisk 304 Not Modified uden filens indhold.
ETag, friskhed og 304-svar
Browseren bruger først Cache-Control til at afgøre, om en cachet fil stadig er frisk. Når friskheden udløber eller no-cache kræver validering, kan ETag bruges til at bekræfte, at indholdet er det samme. Det sparer bytes sammenlignet med et fuldt 200-svar, men det er stadig en netværksrequest.
Versionsstyrede filer med lang max-age undgår ofte også valideringsrequests, fordi browseren ved, at URL'en peger på en ny fil efter deploy. ETag supplerer Expires og Cache-Control — det erstatter dem ikke.
ETag i WordPress-miljøer
ETag håndteres normalt af webserver, hosting eller CDN — ikke af WordPress-kernen. Problemer opstår, når flere origin-servere eller load balancere genererer forskellige ETags for samme fil; cache-hit-rate falder, selv om filen er identisk.
- Sørg for ens ETag-generering på alle servere i et cluster.
- Hash-baserede ETags er ofte mere stabile end inode-baserede værdier.
- Kombinér med fornuftig Cache-Control og URL-versionering af tema- og plugin-assets.
Sådan kontrollerer du det
Genindlæs et statisk aktiv i Chrome DevTools med cache aktiveret. Se efter If-None-Match i request og et 304-svar fra serveren. Mål den samlede cachepolitik — ens ETags, passende max-age og versionsnummer i fil-URL'er giver bedre resultat end at tune én header isoleret.
