Balise-entité ETag HTTP
La balise-entité ETag HTTP[1] ou étiquette d'entité (HTTP ETag en anglais) est une partie du protocole de communication HTTP utilisée pour la validation du cache.
Un ETag est un identifiant unique opaque assigné par le serveur web à chaque version d'une ressource accessible via une URL. Si la ressource accessible via cette URL change, un nouvel ETag différent du précédent sera assigné. Utilisés ainsi, les ETags sont similaires à des empreintes digitales, et peuvent être rapidement comparés pour vérifier si deux versions sont identiques, et ainsi savoir si une demande peut être honorée par un cache local ou pas.
Validation forte et faible
[modifier | modifier le code]Le mécanisme ETag supporte aussi bien une validation forte et une validation faible. Elles se distinguent par la présence de l'initiale "W/" dans l'identifiant ETag , ainsi:
"123456789" – Une validation ETag forte W/"123456789" – Une validation ETag faible
Une validation ETag forte indique que le contenu des deux représentations ressource est identique octet par octet et que tous les autres domaines d'entité (tels que Content-Language) sont également inchangés. L'ETag fort permet de mettre en mémoire cache et de réassembler des réponses partielles, comme avec les requêtes du service d'octet.
Une validation ETag faible indique que les deux représentations ressource sont sémantiquement équivalentes (en), ce qui signifie que pour des utilisations pratiques elles sont interchangeables et que les copies cache peuvent être utilisées. Néanmoins ces représentations ne sont pas nécessairement identiques octet par octet, et par conséquent des ETags faibles ne conviennent pas pour ces requêtes. Elles peuvent être utiles dans des cas où des ETags forts sont impossibles à générer par un serveur web, comme avec du contenu généré dynamiquement.