我已经在 Web.config 中启用了 GZIP 压缩,并且我很高兴它自动添加了 HTTP 标头“Vary:Accept-Encoding”。
问题是 IIS 正在覆盖 ASP.NET 默认返回的“Vary:*”。
问题是,在 POST 调用中,“Vary”标头必须是“*”,因为这意味着响应取决于 URL 或 HTTP 标头中没有的内容……据我所知。带有“Vary:Accept-Encoding”的 POST 调用可能会被错误缓存,对吗?
我想要做的是告诉 IIS 尊重先前的“Vary”标头(如果有)。
问候。
答案1
除非响应中的 Cache-Control 或 Expires 标头明确允许缓存 POST 请求,否则绝不会缓存该请求。代理服务器可以使用 Vary 标头来优化是否可以返回缓存响应的决策,但这仅限于响应首先被允许缓存的情况。因此,如果您确保不允许缓存 POST 请求的响应,则无论 Vary 标头设置为何,它都不会/不应该使其可缓存。