Http 多个路径共享同一ETag可以吗?
我运行了一个实时图像大小调整服务器,它充当浏览器和拥有原始图像的服务器之间的代理:Http 多个路径共享同一ETag可以吗?,http,http-caching,Http,Http Caching,我运行了一个实时图像大小调整服务器,它充当浏览器和拥有原始图像的服务器之间的代理: Browser <=> Resize server <=> Origin server 这两个请求将在源服务器上获取相同的文件/images/kitten.jpg,但会生成此图像的不同版本(大小) 现在我想实现缓存。假设源服务器发送一个ETag头: ETag: "13456789abcdef" 如果我只是转发未修改的ETag以及已调整大小的图像,浏览器将使用相同的ETag在两个不同路径
Browser <=> Resize server <=> Origin server
这两个请求将在源服务器上获取相同的文件/images/kitten.jpg
,但会生成此图像的不同版本(大小)
现在我想实现缓存。假设源服务器发送一个ETag
头:
ETag: "13456789abcdef"
如果我只是转发未修改的ETag
以及已调整大小的图像,浏览器将使用相同的ETag
在两个不同路径上缓存两个不同的图像
现在,如果没有匹配的,我可以愉快地将头从浏览器转发到源服务器,并对304未修改的做出响应,返回304
但是如果我的web服务器上提供不同内容的两条路径共享相同的ETag
,会不会出现问题?
到目前为止,我已经成功地实现了它,一切似乎都如预期的那样工作。我只是想确保我没有忽略一些东西,并且浏览器缓存中有多个路径共享同一个ETag
不会产生任何副作用。不,这不是问题。ETag是每个请求的URI
ETag: "13456789abcdef"