如何向 Web 服务器发出我正在发布 gzip 压缩数据的信号?

Posted

技术标签:

【中文标题】如何向 Web 服务器发出我正在发布 gzip 压缩数据的信号?【英文标题】:How do I signal to a web server that I'm posting gzipped data? 【发布时间】:2012-03-21 21:25:29 【问题描述】:

我有一个将大型 JSON 文件发布到 API 服务器的客户端。由于这些文件是可压缩的,我想将它们压缩并发送压缩数据。

我想知道的是:向服务器表明我的意图的最佳方式是什么?

基本上,我想要Accept-encoding 的反面,这样服务器会将数据视为仅出于传输目的而压缩,并在根据Content-Type 解释数据之前自动解压缩数据。

这意味着我无法将Content-Type 字段设置为application/gzip,因为它需要为application/json,以便服务器了解真正的未压缩数据编码是什么。

Content-Transfer-Encoding 看起来可以满足我的目的,但它在构建时考虑到了电子邮件,并且仅支持 7bitquoted-printablebase648bitbinary

是否存在用于从客户端到服务器的 HTTP 传输的透明压缩/解压缩?如果没有,我想要实现的最佳实践是什么?

【问题讨论】:

【参考方案1】:

Accept-encoding 标头的“反向”是Content-encoding。这会向服务器发出内容已被压缩的信号:

内容编码:gzip

您是正确的,您不应该为此使用 Content-type 标头,因为 gzip 压缩纯粹是请求如何编码的问题,而不是它所代表的内容。

【讨论】:

以上是关于如何向 Web 服务器发出我正在发布 gzip 压缩数据的信号?的主要内容,如果未能解决你的问题,请参考以下文章

GZIP压缩优化

无法解码 Python Web 请求

发出前向地理编码多个地址

用于向 Web 服务发出 http post 请求的多线程

如何从在不同端口上运行的本地 AngularJS 应用程序向本地 Rails 应用程序发出请求?

如何使用客户的 IP 地址向另一个网站发出请求?