1

我正在使用 Puma 服务器运行 rails 应用程序,每个响应在每个响应的开头(看起来像正文长度)和结尾(总是零)都有一些十六进制数字。

HTTP/1.1 200 OK
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-UA-Compatible: chrome=1
Content-Type: application/json; charset=utf-8
ETag: "8e6d795d26a3839c23c0b28f7b2e3c08"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: [skip]; path=/; HttpOnly
X-Request-Id: 741cdbde-39a8-4b99-9af7-15a7e65ff1ac
X-Runtime: 0.202731
Transfer-Encoding: chunked

f <-- THIS
{"response":{}}
0 <-- AND THIS

这是什么?

4

1 回答 1

7

这就是分块传输编码的工作方式。它以片段的形式发送正文,前面有一行包含十六进制的片段长度。正文的结尾由一个有0长度的块表示。

所以你展示的是第一个块有 15 个字符长,没有第二个块。

一个合适的 HTTP 客户端或 API 应该去掉这些块头,然后只返回内容。

有关更多详细信息,请参阅Wikipedia,或有关官方规范的RFC 2616

于 2014-04-17T09:13:19.327 回答