多部分消息可以包含原始二进制内容吗?

Can a multi-part message contain raw binary content?

我想通过 HTTP 传输二进制内容。我怀疑发送由二进制文件和简短的元数据内容组成的 "multi-part" 正文是否是个好主意。

我可以在多部分消息中发送二进制内容,而无需对其进行转换(即转换为 BASE64)吗?


W3C specification 似乎并没有禁止它 - 但非转义二进制内容可能恰好包含封装边界,不是吗?

我想查看我的 chrome 开发人员工具集中的数据 - 但没有显示有趣的部分。

显然,是的。这就是大多数多范围请求得到答复的方式。

Content-Range 中定义的大小开始和结束位置用于计算从传入数据中读取的大小,因此它实际上可以是任何东西,它只需要是完全正确的大小(甚至当它只是文本时!)

此外,内容可以被压缩。不过,我不确定每个浏览器如何支持子部分压缩。

当然,你应该有一个Content-Type描述部分内容的。

例如:

--<boundary>
Content-Type: image/jpeg<cr ln>
Content-Range: bytes=0-999/64911<cr ln>
<cr ln>
<binary JPEG data><cr ln>
--<boundary><cr ln>
...(2nd part)...<cr ln>
--<boundary><cr ln>
...(3rd part)...<cr ln>
--<boundary>--<cr ln>        (last boundary)