Ein eTag (Entity Tag) ist ein eindeutiger Kennzeichner (Hash-Wert), den ein Webserver einer Ressource (z. B. Bild, HTML-Seite, CSS-Datei) zuweist. eTags sind ein Mechanismus zur Validierung von Cache-Inhalten. Wenn ein Browser eine Ressource erneut anfordert, sendet er den gespeicherten eTag an den Server. Der Server vergleicht diesen mit dem aktuellen Stand der Datei. Ist die Datei unverändert, sendet der Server den Statuscode 304 Not Modified, und der Browser nutzt die bereits lokal zwischengespeicherte Version. Dies spart Bandbreite und beschleunigt den Seitenaufbau, da die Datei nicht erneut übertragen werden muss.

eTags mittels .htaccess verwalten

In einigen Konfigurationen kann es sinnvoll sein, eTags zu deaktivieren, etwa wenn diese aufgrund von Server-Clustern zu Fehlern führen (da die Hashes auf verschiedenen Servern unterschiedlich sein können). Dies geschieht in der .htaccess mit:


Header unset ETag
FileETag None

Hinweis: Das Deaktivieren von eTags ist in der Regel nicht notwendig und kann die Effizienz des Browser-Cachings verringern.

Caching korrekt steuern (Cache-Control & Expires)

Anstatt sich allein auf eTags zu verlassen, steuern Sie das Caching primär über die Cache-Control- und Expires-Header. Diese legen fest, wie lange eine Datei gültig bleibt, ohne dass der Browser beim Server nachfragen muss.

Ein Beispiel für die .htaccess:


<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 2 hours"
</IfModule>

<IfModule mod_headers.c>
    # Cache-Control für Browser setzen: 60 Tage (5184000 Sekunden)
    Header set Cache-Control "max-age=5184000, public, must-revalidate"
</IfModule>