如何压缩HTTP响应?



我有一个HTTP响应请求太大,速度太慢(1.2 mb, 15秒,纯文本)。我想用gzip压缩,但服务器不是我的。然后我将数据用于图表

例如。我需要这个响应是compress:

https://rickandmortyapi.com/api/location/20

有可能吗?

我使用的代码效果很好:

$.post("http://serverNotMine", function() {}, "text")
.done(function(data) {
// my code for a chart.js
})
.fail(function() {
alert("Error");
});

我怎么知道服务器是否接受gzip?

Accept-EncodingHTTP报头主要用于此目的,因此您可以指定目标编码,服务器将在选择列表中使用所需的编码进行响应。但是,服务器可以选择忽略此请求,除非明确禁止identity,在这种情况下,服务器可以响应406错误。

然而,幸运的是,您正在尝试联系的服务器实际上支持gzip的Accept-Encoding标头。

>>> import requests
>>> response = requests.get('https://rickandmortyapi.com/api/location/20', 
headers={'Accept-Encoding': 'gzip'})
>>> response.headers['content-encoding']
'gzip'

只使用上面标头的HTTP客户端。但是,也有可能使用客户端已经使用的压缩算法的默认配置。

最新更新