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
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.