http协议-经过压缩的http响应中的ETag信息被丢弃如何解决?

http协议-经过压缩的http响应中的ETag信息被丢弃如何解决?

晚风撩人 发布于 2017-05-12 字数 200 浏览 1178 回复 2

说下具体的问题,网站上由于历史原因一直使用ETag来保存一些信息。
现在由于对请求做了压缩之后,发现在IE下(至少是6)返回的http响应里没有Etag了。
问题是如何在使用压缩的同时让响应有Etag呢?

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

灵芸 2017-09-28 2 楼

可以使用cookie来做,
server在发现User-Agent是IE6的时,在返回压缩内容时发送Last-Modified+set-cookie头:

Set-Cookie: etag=hash; path=/xxx

服务器下次收到请求,如果收到If-Modified-Since,表明客户端有当前请求的cache,就可以从cookie里面验证etag值。

清晨说ぺ晚安 2017-09-20 1 楼

etag字符串的最后一部分整合了机器信息,

Entity tags (ETags) are a mechanism
that web servers and browsers use to
determine whether the component in the
browser's cache matches the one on the
origin server.

但这个在CDN部署上,恰恰是最不适宜带上的。 所以如果要保证来自统一服务器,那么Etag建议带上,如果CDN多地域机器部署,这个Etag就不合适了,至少要把机器信息干掉,所以直接用If-Modified-Since 更为合适吧