2012-09-11 32 views
5

几天前我问了this question,我没有得到很多活动。这让我想,也许这是因为我的问题是无稽之谈。合法的http/rest是否具有压缩的请求?

我对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编码的。

也就是说,没有内容编码头的请求,只有响应。

这是这种情况?

使用http尝试压缩请求的方法不正确吗?

回答

3

根据another answer here on SO,在HTTP标准之内在请求上拥有一个Content-Encoding头并发送放弃的实体。

似乎没有服务器会自动为您填充数据,但是您必须自己编写服务器端代码(请检查请求标头并采取相应措施)。