我使用 ETag 来提高性能。我决定使用在服务器、客户端和代理上都有效的 ETag。
但是如果代理已保存 ETag,该如何处理?代理是否仍会询问网站 ETag 是否有效,还是代理本身只是回答“我知道这个。无需询问服务器?”
或者换句话说,如果启用了代理上的 ETag 缓存,以下场景是否仍然有效?
- 浏览器发出请求。返回 ETag“ABBA”
- 浏览器向服务器发出另一个请求。识别到 ETag“ABBA”,返回 304 2.1 浏览器使用本地缓存
- 浏览器向服务器发出另一个请求,发送 ETag“ABBA”。这一次,服务器认为数据已更改,因此它返回带有新 Etag 的新响应。
如果客户端和服务器之间有一个知道 Etag 的代理,它是否仍会询问服务器 Etag 是否有效,或者如果代理一旦知道 Etag,请求是否就此结束?