服务器有时会返回分块传输编码。

3
我正在构建一个REST API。有时服务器会使用分块传输编码返回响应?为什么会这样呢?!
为什么服务器不总是使用相同的编码返回响应?
问题在于当数据以分块方式返回时,我不知道如何读取数据!
更新:
需要更多的负评...来呼吸...

你有任何样例代码吗?如果不看到正在发生的事情,很难告诉你出了什么问题。 - CountMurphy
我不能展示任何代码.. 我需要知道为什么服务器有时会返回分块编码响应。 - clarkk
有人吗?为什么服务器会返回Content-Length响应和Chunked响应? - clarkk
3个回答

2
假设您的服务器正在使用Apache,这是预期的行为。您可以通过在.htaccess文件中添加以下行来禁用它:
SetEnv downgrade-1.0

然而,您应该考虑修改阅读代码以支持不同的内容编码。您使用哪个库来进行HTTP请求?任何合理的HTTP库都可以处理分块请求。如果您的请求代码是用PHP编写的,请使用curl。http://php.net/manual/en/book.curl.php


1

来自 Server Fault

  1. 指定“Content-Length”头,以便服务器知道响应的大小
  2. 在请求方使用HTTP 1.0

0
一个问题可能是Apache正在压缩您的下载,负责纠正Content-Length,或在您的情况下添加头文件。
内容编码:分块
您可以添加.htaccess RewriteRule来禁用gzip:
RewriteRule . - [E=no-gzip:1]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接