HTTP客户端指示HTTP服务器禁用gzip响应的规范方法是什么?

Hom*_*er6 16 compression gzip http http-accept-encoding

我认为这是一个简单的谷歌搜索,但显然我错了.

我见过你应该提供:

Accept-Encoding: gzip;q=0,deflate;q=0
Run Code Online (Sandbox Code Playgroud)

在请求标头中.但是,建议它的文章也指出代理通常会忽略该标头.此外,当我将它提供给nginx时,它仍然压缩了响应消息体.

http://forgetmenotes.blogspot.ca/2009/05/how-to-disable-gzip-compression-in.html

那么,如何告诉Web服务器在响应消息体上禁用压缩?

Jac*_*ter 15

许多Web服务器忽略'q'参数.静态资源的压缩版本通常被缓存,并在请求接受时返回.为避免获取压缩资源,请使用

Accept-Encoding: identity
Run Code Online (Sandbox Code Playgroud)

在此实例中,服务器不应为您提供资源的压缩表示.任何代理也不应该.如果没有给出,这是默认接受的编码,但是您的客户端可能会添加一个接受gzip的默认值,因此明确提供'identity'应该可以解决问题.


Cha*_*pul 10

你希望完全禁用编码吗?
然后在http请求标头中跳过Accept-Encoding标头.

你希望http响应中只有gzip压缩吗?
然后从http请求标头中的值列表中跳过gzip.

您是否希望优先考虑服务器支持的不同压缩技术?然后对Accept-Encoding http请求标头中的每个值使用0和1之间的不同值以及q参数.(目前您正在使用冲突的值并按权重= 0表示您不知道如何管理,但您希望无论如何都要对响应进行编码)

  • 不不不.W3C规范(https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.3)明确指出"如果请求中没有Accept-Encoding字段,服务器可能会认为客户将接受任何内容编码." 另外"注意:如果请求不包括Accept-Encoding字段,并且"identity"内容编码不可用,则HTTP/1.0客户端通常理解内容编码(即"gzip"和"compress")是首选;" (3认同)