gpt4 book ai didi

http - IIS6 在请求中包含 Via header 时不进行 gzip 压缩

转载 作者:可可西里 更新时间:2023-11-01 16:29:21 26 4
gpt4 key购买 nike

我有一些静态内容通过 CDN。我正在为静态内容使用 IIS6 的内置压缩(gzip 和 deflate),当我请求时它工作正常。但是,当 CDN 对内容发出初始请求时,它并没有被压缩返回。因此,他们没有压缩内容可以转发给请求它的人。 (是的,这引发了人们使用无法处理压缩的浏览器从 CDN 请求 [压缩的] 内容的问题。-我们暂时将其放在一边)

这是一个没有“Via” header 的请求示例:

    HEAD /flash/swfobject.js HTTP/1.1      User-Agent: curl/7.19.7 (i386-pc-win32)      Host: localhost:9120      Accept: */*      Connection: Keep-Alive      accept-encoding: gzip  

它返回一个压缩响应:

    HTTP/1.1 200 OK    Content-Length: 4357    Content-Type: application/x-javascript    Content-Encoding: gzip    Expires: Wed, 01 Jan 2020 00:00:00 GMT    Last-Modified: Wed, 18 Nov 2009 15:36:52 GMT    Accept-Ranges: bytes    Vary: Accept-Encoding    Server: Microsoft-IIS/6.0    Date: Thu, 19 Nov 2009 10:27:50 GMT

但是,如果我在请求中包含“Via” header (就像 CDN 所做的那样),那么返回的结果是未压缩的:

请求:

    HEAD /flash/swfobject.js HTTP/1.1    User-Agent: curl/7.19.7 (i386-pc-win32)    Host: localhost:9120    Accept: */*    Connection: Keep-Alive    Via: 1.1 204.160.105.17:80 (Footprint 4.5/FPMCP)    accept-encoding: gzip

响应:

     HTTP/1.1 200 OK    Content-Length: 14602    Content-Type: application/x-javascript    Expires: Wed, 01 Jan 2020 00:00:00 GMT    Last-Modified: Wed, 18 Nov 2009 15:36:54 GMT    Accept-Ranges: bytes    Server: Microsoft-IIS/6.0    Date: Thu, 19 Nov 2009 10:29:52 GMT

是的,这些演示在请求中使用“localhost”。不过,我使用来自不同网络上不同机器的实际域名得到了相同的结果。

那么两个问题:

  1. 这会不会是 IIS 由于额外的 header 而没有应用压缩?如果是这样,我该怎么办?

  2. 如何判断代理在返回内容之前是否正在解压缩内容?

附加问题 3 - 我可以做些什么来进一步调查这个问题?

我知道问题 332049,但它在响应中有 header ,而不是请求。

最佳答案

我自己在研究这个问题时偶然发现了你的问题。我发现了一个 article on MSDN简短的回答是 Via header 用于代理,而代理通常会搞乱压缩。您可以选择删除 header ,也可以更改 IIS 元数据库中的设置 (HcNoCompressionForProxies="FALSE")。我在这两个选项上都取得了成功。

关于http - IIS6 在请求中包含 Via header 时不进行 gzip 压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1762808/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com