5

几天前我问了这个问题,但我没有得到很多活动。这让我想到,也许这是因为我的问题很荒谬。

我对http的理解是客户端(典型的浏览器)向服务器发送请求(get),在我的例子中是IIS。该请求的一部分是 accept-encoding 标头,它向服务器指示客户端希望返回资源的编码类型。通常这可能包括 gZip。如果服务器设置正确,它将以请求的编码返回请求的资源。

响应将包含一个 Content-Encoding 标头,指示已对资源应用了何种压缩。响应中还包括 Content-Type 标头,它指示资源的 mime 类型。因此,如果响应包含 Content-Type : application/json 和 Content-Encoding: gzip,则客户端知道资源是使用 gzip 压缩的 json。

现在我面临的情况是,我正在为不是浏览器而是移动设备的客户端开发 Web 服务,并且这些设备不会请求资源,而是将数据发布到服务以进行处理。

所以我实现了一个 Restfull 服务,它接受正文中带有 json 的 post 请求。我的客户使用 Content-Type:Application/json 发送他们的帖子请求。但是我的一些客户要求他们想要压缩他们的请求以加快传输速度。但我的理解是,无法在请求中表明请求的正文已使用 gZip 进行编码。

也就是说,请求没有 content-Encoding 标头,只有响应。

是这样吗?

尝试压缩请求是否不正确使用http?

4

1 回答 1

3

根据SO 上的另一个答案,在 HTTP 标准中,在请求上有一个 Content-Encoding 标头并发送放气的实体。

不过,似乎没有服务器会自动为您增加数据,因此您必须自己编写服务器端代码(检查请求标头并采取相应措施)。

于 2012-09-11T03:15:12.870 回答