Rest Etag令牌如何在HTTP中的条件GET中工作?

Rest Etag令牌如何在HTTP中的条件GET中工作?,rest,http,get,etag,if-none-match,Rest,Http,Get,Etag,If None Match,因此,基本上我想了解请求中If None匹配头中的ETag令牌值的工作情况 从条件GET方法开始,我就理解了If修饰符的工作原理。 有人能简单地解释一下,如果Etag没有匹配条件,那么条件GET是如何工作的吗 提前感谢:)对于执行条件请求,如果不匹配,请使用传递Etag,如果自使用日期后修改,请使用 Etag是表示实体状态的值。通常,它是一个base64编码的散列。当请求资源时,服务器可以将EtagHTTP头附加到响应,这样的Etag将表示资源的状态。然后,客户端可以在下一个请求中发送如果不匹配

因此,基本上我想了解请求中If None匹配头中的ETag令牌值的工作情况

从条件GET方法开始,我就理解了If修饰符的工作原理。 有人能简单地解释一下,如果Etag没有匹配条件,那么条件GET是如何工作的吗


提前感谢:)

对于执行条件请求,如果不匹配,请使用
传递Etag,如果自使用日期后修改,请使用

Etag是表示实体状态的值。通常,它是一个base64编码的散列。当请求资源时,服务器可以将
Etag
HTTP头附加到响应,这样的Etag将表示资源的状态。然后,客户端可以在下一个请求中发送
如果不匹配
头中的Etag或Etag集合,因此服务器将检查请求的资源的状态是否已更改,如果已更改,则将返回具有新资源表示的HTTP 200或指示资源未更改的HTTP 304

Etag被认为是一个强大的验证器,因此如果没有匹配项,则
将优先于
,如果自
以来进行了修改

更多信息:


它不代表实体的状态。它代表内容。虽然表示这一点的最准确方法是对内容进行散列,但在运行时进行计算的成本相当高,因此大多数服务器使用其他方法;apache/lighttpd使用一个或多个文件inode、mtime和size,nginx仅使用上次修改的时间和大小。这增加了集群的复杂性。有条件的请求是否能为大多数流量增加任何价值值得商榷,它肯定无助于实施有效的缓存策略来定期更改内容(非常大的文件除外)