2

我在 PHP 中使用 fsockopen() 做一些 API 请求。对于大多数正常工作的 API,但从http://geocoding.cloudmade.com/我得到以下(RAW)响应:

HTTP/1.1 200 OK
Server: nginx/0.6.35
cache-control: no-cache
Content-Type: application/json; charset=utf-8
Date: Tue, 19 Feb 2013 11:08:05 GMT
pragma: no-cache
Transfer-Encoding: chunked
Connection: close

2fb
{"found": 1, "bounds": [[52.48732, 13.42553], ...
0

我的问题是第一行中的“2fb”和正文最后一行中的“0”并没有告诉我什么。如果我通过 Firefox 发送相同的请求,则正文不包含“2fb”或“0”。因此,我想它有一些意义。但是什么?

感谢提示!

4

1 回答 1

4

这就是分块传输编码,也由Transfer-Encoding: chunked响应头指示:

分块编码修改消息的主体,以便将其作为一系列块传输,每个块都有自己的大小指示符,后跟一个包含实体头字段的可选尾部。这允许动态生成的内容与接收者验证其已收到完整消息所需的信息一起传输。

2fb, 后跟\r\n, 表示后续块的大小(763 字节)。chunk-size0表示最后一个块。

于 2013-02-19T11:19:10.077 回答