Les deux représentent un hashsum du corps du message. Les deux peuvent être utilisés pour vérifier si la ressource a été modifiée depuis la dernière fois qu'elle a été demandée par un client spécifique. S'ils font une chose identique, pourquoi coexistent-ils dans la spécification RFC2616?Dans le protocole HTTP, quelle est la différence entre ETag et Content-MD5?
Répondre
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.
- 1. Quelle est la différence entre les protocoles REST et HTTP?
- 2. Quelle est la différence entre une méthode et un protocole
- 3. Quelle est la différence entre net.tcp et http?
- 4. Différence entre le protocole et les délégués?
- 5. Différence entre http: // et http: \\
- 6. quelle est la différence entre:.! et: r !?
- 7. Quelle est la différence entre equales et ==
- 8. Quelle est la différence entre le document et le DOM?
- 9. Quelle est la différence entre dict() et {}?
- 10. quelle est la différence entre '! =' Et
- 11. Quelle est la différence entre = et: =
- 12. Quelle est la différence entre "$^N" et "$ +"?
- 13. Quelle est la différence entre & et @ Sass
- 14. Quelle est la différence entre '==' et '==='?
- 15. Quelle est la différence entre ~ et! opérateur?
- 16. Quelle est la différence entre == et ===?
- 17. quelle est la différence entre == et ===?
- 18. quelle est la différence entre * et l'objet
- 19. Quelle est la différence entre `{}` et `[]`?
- 20. Quelle est la différence entre ces 2 définitions Get HTTP?
- 21. Quelle est la différence entre keep_alive et l'option persistante pour la requête HTTP?
- 22. Quelle est la différence entre le fichier et le projet?
- 23. Quelle est la différence entre le déclencheur et le curseur?
- 24. Quelle est la différence entre un protocole et une interface dans Objective-c?
- 25. différence entre http et www
- 26. Quelle est la différence entre les URL http://website.com et http://www.website.com d'un site Web?
- 27. Quelle est la différence entre le rappel et la promesse
- 28. quelle est la différence entre la cible et le projet?
- 29. Quelle est la différence entre le tuyau et la douille?
- 30. Quelle est la différence entre une servlet HTTP et SOAP sur HTTP?