2010-03-02 80 views
10

特别是在JAX-RS(我不确定这是否相关)中,有些方法允许您将EntityTags添加到响应中。实体标签究竟是什么以及它们使用了什么实际的方法?什么是HTTP响应实体标签?

回答

12

实体标签是将缓存合并到HTTP协议中的一种方式。当服务器返回响应时,它可以附加一个ETag标题,该标题给出一个值,该值表示响应客户请求返回的对象的状态。

当客户端发出相同响应的后续请求时,它可以使用If-None-Match标头发送请求中的ETag,服务器可以使用它来确定是否需要发送新响应(即请求的状态对象发生了变化),还是它可以响应一条304 Not Modified响应,指示客户端使用其本地缓存副本。

这是最常用于REST风格的API和缓存和对象状态相关的应用程序。

http://en.wikipedia.org/wiki/HTTP_ETag

3

除了朱利安参考:一般来说,实体标签使客户端,服务器和中介可以就资源的特定表示(因此实体标签)达成一致。

该协议用于减少网络使用(条件检索)和并发控制(条件更新)。前者按照“如果它不是我已经拥有的表示形式发送给我这个资源的当前表示”,并且后者按照“将此更改应用于该资源,如果它仍然具有我期望的状态它有“)。

其余部分在HTTp规范中有详细说明。

1月