我使用ETags来提高性能。 我决定使用在服务器,客户端和代理上有效的Etag。
但是如果代理已经保存了ETag,怎么处理呢? 代理服务器是否仍然询问网站是否有效,或者代理服务器本身是否回答“我知道这个,不需要问服务器?
换句话说,如果启用了代理服务器上的ETagcachingfunction,以下情况仍然有效吗?
如果在客户端和服务器之间有一个知道ETag的代理,它是否仍然询问服务器Etag是否有效,或者如果代理知道了etag,请求是否结束?
代理服务器的行为主要由后端服务器设置的Cache-Control头控制 。
只要资源没有过期,代理将从caching中提供它(包括所有相关的元数据,如ETag)。 只要允许将资源保存在caching中,代理就不需要联系服务器来validation原始内容。
一旦Cache-Control头指示资源应该从caching过期,或被重新validation,代理服务器将再次联系服务器以validation原始资源。 如果ETag在服务器上未被修改,则不必再次下载,同一对象(但具有更新的caching控制时序)可以保留在caching中。
这个资源可能是有趣的。