2013-02-14 2 views

Répondre

11

Les deux représentent un hashsum du corps du message.

Pas tout à fait. Content-MD5 est un hachage, mais ETag est un identificateur opaque: le client ne sait pas ce que cela signifie. Il est vrai qu'une façon de générer un ETag approprié est de hacher les données de la ressource, mais ce n'est certainement pas le seul.

Les deux peuvent être utilisés pour vérifier si la ressource a été modifiée depuis le dernière fois qu'il a été demandé par un client spécifique.

C'est vrai, bien que dans les deux cas, vous pouvez théoriquement obtenir à la fois des faux positifs et des faux négatifs.

S'ils font une chose identique, pourquoi coexistent-ils dans la spécification RFC2616?

Les coexistent parce qu'ils servent à des fins différentes; "ils font des choses identiques" n'est pas vrai.

Content-MD5 est destiné à permettre au client de vérifier l'intégrité de la ressource transférée: sa signification est bien définie, et il n'est pas censé être utilisé après la réception de la réponse.

ETag est destiné à être utilisé pour coordonner la mise en cache. Étant opaque, il permet de découpler la sémantique d'un «identificateur de ressource» de son mécanisme (le serveur peut choisir d'utiliser n'importe quel schéma d'identification et il est libre de changer ce schéma à l'avenir sans que les clients aient leur mot à dire). De plus, ETag prend en charge weak validation, ce qui permet de traiter deux versions différentes d'une ressource comme sémantiquement équivalentes.

Questions connexes