似乎有两种不同的方法可以使用 HTTP 标头来实现条件请求,这两种方法都可以用于缓存、范围请求、并发控制等......:
- If-Unmodified-Since 和 If-Modified-Since,客户端发送资源的时间戳。
- If-Modified 和 If-None-Modified,客户端发送资源的ETag表示。
在这两种情况下,客户端都会发送它拥有的有关资源的一条信息,这允许服务器确定自客户端上次看到资源以来资源是否已更改。然后,服务器根据客户端提供的条件标头决定是否执行请求。
我不明白为什么有两种不同的方法可用。当然,ETag 取代了时间戳,因为服务器可以很容易地选择从时间戳生成 ETag。
所以,我的问题是:
- 在哪些情况下,您可能更喜欢 If-Unmodified-Since/If-Modified-Since 而不是 ETags?
- 在哪些情况下您可能需要两者?