gpt4 book ai didi

.net - 如何以编程方式检查 Web 服务器是否启用了 http 压缩?

转载 作者:可可西里 更新时间:2023-11-01 15:13:00 26 4
gpt4 key购买 nike

我想检查 Web 服务器是否启用了 http 压缩,以及是否启用了特定的压缩(即 Gzip、Deflate、Compress)?

或者,如果我通过 .net 中的 WebClient 对象通过将 Accept-Encoding 设置为“gzip,deflate”来请求数据,我如何知道在处理之前检索到的数据是否已压缩?

最佳答案

要检查响应主体的编码是什么,您应该检查 HTTP 响应 header :Content-Encoding。

服务器只允许使用由请求 header 接受编码指定的编码。如果服务器无法使用指定的接受编码之一给出响应,则它必须以 406( Not Acceptable )响应。

请求示例:

GET / HTTP/1.1
Host: www.brianbondy.com
Accept-Encoding: gzip,deflate

响应示例:

HTTP/1.1 200 OK
Date: Thu, 04 Dec 2003 16:15:12 GMT
Server: Apache/2.0
Content-Encoding: gzip
Content-Length: 1533

接受编码的其他例子:

 Accept-Encoding: compress, gzip
Accept-Encoding:
Accept-Encoding: *
Accept-Encoding: compress;q=0.5, gzip;q=1.0
Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0

如何准确知道服务器上可用的编码:

无法确切知道服务器级别可用的编码,因为某些服务器可能仅支持某些文件类型的某些编码。

这意味着您最多只能回答以下问题:对于请求第一行中指定的文件,该文件的特定编码是否可用?您可以通过显式拒绝身份内容编码并指定您想了解的编码来回答这个问题。

Accept-Encoding: gzip, identity;q=0

Source of examples, HTTP RFC

关于.net - 如何以编程方式检查 Web 服务器是否启用了 http 压缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/593285/

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