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

前端之家收集整理的这篇文章主要介绍了.net – 如何以编程方式检查Web服务器是否启用了http压缩?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想检查Web服务器是否启用了http压缩,并启用了特定的压缩(即Gzip,Deflate,Compress)?

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

解决方法

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

服务器仅允许使用请求标头accept-encoding指定的编码.如果服务器无法使用指定的accept-encodings之一给出响应,则它必须以406(不可接受)响应.

示例请求:

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的其他示例:

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

猜你在找的HTML相关文章