https://tools.ietf.org/html/rfc7232#section-3
什么时候需要检查多个etags而不只是一个?
例如,使用If-None-Match: "etag1","etag2"
发送HTTP请求的目的是什么?为什么客户在那里需要"etag1"
和"etag2"
?客户端是否应该仅使用从服务器收到的针对此特定资源的最后一个etag?
答案 0 :(得分:0)
为什么客户在那里同时需要etag1
和etag2
?
如果客户端在其缓存中同时具有etag1
和etag2
,则发送两者都是有利的,因为这会扩展其可以跳过下载新数据的情况范围。
客户端是否应仅使用从服务器收到的针对此特定资源的最后一个etag?
您正在考虑一种资源,当资源发生变化时,始终会更改为新值,在这种情况下,缓存旧资源时没有任何意义。但是,情况不一定如此。想象一下在两种状态(表示)之间振荡的资源,在这种情况下缓存两者(并发送两个ETag)意味着您永远不必再次下载数据。
另一件需要考虑的事情是Content-Type
可以在同一时间点更改同一资源的表示形式。想象一个客户端(比如说是一个中间缓存),它可以处理资源的文本和gzip压缩版本,并且已经拥有了一个。发送两个ETag(与Accept
一起)意味着它不太可能必须下载新数据。