HTTP Header中Accept-Encoding 是浏览器发给服务器,声明浏览器支持的编码类型的,Python的HTTPConnection默认是identitiy类型.
常见的有
Accept-Encoding: compress, gzip //支持compress 和gzip类型
Accept-Encoding: //默认是identity
Accept-Encoding: * //支持所有类型
Accept-Encoding: compress;q=0.5, gzip;q=1.0 //按顺序支持 gzip , compress
Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0 // 按顺序支持 gzip , identity
服务器返回的对应的类型编码header是 content-encoding
服务器处理accept-encoding的规则如下所示
1. 如果服务器可以返回定义在Accept-Encoding 中的任何一种Encoding类型, 那么处理成功(除非q的值等于0, 等于0代表不可接受)
2. * 代表任意一种Encoding类型 (除了在Accept-Encoding中显示定义的类型)
3.如果有多个Encoding同时匹配, 按照q值顺序排列
4. identity总是可被接受的encoding类型(除非显示的标记这个类型q=0) , 如果Accept-Encoding的值是空 那么只有identity是会被接受的类型
如果Accept-Encoding中的所有类型服务器都没发返回, 那么应该返回406错误给客户端
如果request中没有Accept-Encoding 那么服务器会假设所有的Encoding都是可以被接受的,
如果Accept-Encoding中有identity 那么应该优先返回identity (除非有q值的定义,或者你认为另外一种类型是更有意义的)
注意:
如果服务器不支持identity 并且浏览器没有发送Accept-Encoding,那么服务器应该倾向于使用HTTP1.0中的 "gzip" and "compress" , 服务器可能按照客户端类型 发送更适合的encoding类型
大部分HTTP1.0的客户端无法处理q值.并且有的服务器无论是否传递了Accept-Encoding,都会返回压缩数据,所以还是要对response的Content-Encoding进行监测。
分享到:
相关推荐
在,建议浏览器应发送Accept-Encoding: identity以及范围请求,否则某些服务器将忽略该范围并返回200。因此,这是一个测试! data.json包含中以mp3或mp4结尾的所有URL,并由主机进行重复数据删除。 警告:这些是来自...
在存储响应时,Squid 使用内部对象头表示 HTTP 响应头,而对象体则保存了 URL 包含的各种 "Accept-Encoding" 值以及相应的 StoreEntry 的 KEY。例如,响应头中会有一个特殊的 "x-squid-internal/vary" 类型,用于...
提供一组强大的解析器,用于处理HTTP Accept , Accept-Language , Accept-Encoding , Accept-Charset标头。 动机 我一直在,其中一部分涉及版本控制。 在检查了选项之后,我决定使用的Accept: application/json;...
1. **接收HTTP请求**:当Web服务器接收到用户的HTTP请求时,它首先会检查该请求中的“Accept-Encoding”头部信息,判断客户端(浏览器)是否支持HTTP压缩。如果“Accept-Encoding”包含“gzip, deflate”,则表明...
在HTTP协议中,客户端可以通过设置`Accept-Encoding`头部来告知服务器它支持的压缩格式,如`gzip, deflate`等。服务器根据这个信息决定是否启用GZIP压缩。同样,服务器在响应中会通过`Content-Encoding`头部告知...
3 Accept-Encoding 5 4 Accept-Language 6 5 Accept-Range 7 6 Age 7 7 Allow 8 8 Authorization (授权) 8 9 Cache-Control 9 1什么是可缓存的 10 2什么能被缓存保存 11 3对基本过期机制的改进 11 4缓存重验证和...
获取 HTTP 头文件中 accept-encoding 的值: gzip,deflate,sdch 获取客户的 IP 地址: 0:0:0:0:0:0:0:1 获取客户机的名称: 0:0:0:0:0:0:0:1 获取服务器的名称: localhost 获取服务器的端口号: 48090 获取...
请求头是客户端在请求消息中添加的一些附加信息,包括 Accept、Accept-Charset、Accept-Encoding、Accept-Language、Authorization、Expect、From、Host、If-Range、Max-Forwards、Proxy-Authorization 和 Range 等...
* 通用头标:Accept、Accept-Charset、Accept-Encoding、Accept-Language、Accept-Ranges、Age、Allow、Authorization、Cache-Control、Connection、Content-Base、Content-Encoding、Content-Language、Content-...
这通过读取HTTP请求头中的`Accept-Encoding`字段来完成,该字段列出了客户端接受的编码类型。如果`Accept-Encoding`包含“gzip”,我们就使用GZipStream;如果包含“deflate”,我们就使用DeflateStream。这两者都...
例如,在HTTP请求中,客户端通过Accept-Encoding头部告知服务器它支持的压缩编码方式。服务器根据请求中的信息,使用zlib模块来压缩响应内容,再通过Content-Encoding头部告知客户端实际使用了哪种压缩编码。 在...
* Request Header Fields:Accept、Accept-Charset、Accept-Encoding、Accept-Language、Authorization、Expect、From、Host、If-Match、If-Modified-Since、If-None-Match、If-Range、If-Unmodified-Since、Max-...
如下所示: import requests\nurl='http://####' ... "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3", "Connection":"keep-alive", "Host
前言 大家都知道,nginx配置文件通过使用add_header指令来设置response header。...vary: Accept-Encoding, Cookie cache-control: max-age=3, must-revalidate last-modified: Thu, 07 Feb 2019 03:54:54 GMT X-Cach
- **Accept-Encoding**: 客户端支持的数据压缩格式,例如`Accept-Encoding: gzip`。 - **Accept-Language**: 客户端可以接受的语言,例如`Accept-Language: zh-CN`。 - **Authorization**: 客户端向服务器提供的认证...
* Accept-Encoding 头域:指定客户机可以接受的响应内容编码。 * Accept-Language 头域:指定客户机可以接受的语言。 响应头域 响应头域包含服务器向客户机发送的响应消息的头域,例如: * Content-Type 头域:...
在服务器端,如果需要支持GZIP压缩,可以检查HTTP请求头中的`Accept-Encoding`字段,判断客户端是否接受GZIP压缩。如果接受,服务器就可以使用`GZIPOutputStream`对响应内容进行压缩,然后发送给客户端。例如: ```...
2. **压缩处理**:如果服务器根据"Accept-Encoding"来选择是否压缩响应,Vary头应包含"Accept-Encoding"。这确保了不同压缩需求的请求不会错误地共享同一个压缩或未压缩的响应。 3. **自适应图片**:在响应中包含...
这条命令除了执行基本的负载测试外,还会在每个请求中添加`accept-encoding:gzip`头部,以请求服务器返回压缩的数据。 - **多线程支持**: ```bash h2load -t 2 -n 100 -c 10 -m 10 --header="accept-encoding:...
3. Accept-Encoding:客户端告知服务器它支持的内容压缩编码类型,如gzip、compress。示例:Accept-Encoding: compress, gzip 4. Accept-Language:客户端可以接受的语言,如英语(en)或中文(zh)。示例:Accept-...