默认情况下是否允许 HTTP 代理缓存页面?
Is a HTTP proxy allowed to cache a page by default?
如果 Web 服务器 return 的 HTTP 响应没有任何缓存 headers(例如 Pragma 和 Cache-Control , ETag 或 Last-Modified), 是允许缓存页面的 standards-conforming HTTP 代理并且return 如果网络浏览器再次请求相同的 URL 缓存版本(不咨询网络服务器)?
我对 HTTP/1.0 和 HTTP/1.1.
感兴趣
我正在阅读 https://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.4,我认为答案是肯定的(默认情况下允许代理缓存页面和 return 缓存版本)。我的理解正确吗?
答案是肯定的。 http 中有一个称为启发式新鲜度的概念,它允许缓存计算资源的估计年龄,然后选择该值的任意比例用作新鲜度生命周期,在此期间它可以将缓存的内容提供给客户端。
有一些限制,例如,如果请求中有查询字符串,或者(如果我没记错的话)如果响应缺少日期,则不应执行此操作 header.
如果 Web 服务器 return 的 HTTP 响应没有任何缓存 headers(例如 Pragma 和 Cache-Control , ETag 或 Last-Modified), 是允许缓存页面的 standards-conforming HTTP 代理并且return 如果网络浏览器再次请求相同的 URL 缓存版本(不咨询网络服务器)?
我对 HTTP/1.0 和 HTTP/1.1.
感兴趣我正在阅读 https://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.4,我认为答案是肯定的(默认情况下允许代理缓存页面和 return 缓存版本)。我的理解正确吗?
答案是肯定的。 http 中有一个称为启发式新鲜度的概念,它允许缓存计算资源的估计年龄,然后选择该值的任意比例用作新鲜度生命周期,在此期间它可以将缓存的内容提供给客户端。
有一些限制,例如,如果请求中有查询字符串,或者(如果我没记错的话)如果响应缺少日期,则不应执行此操作 header.