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

时间:2018-06-25 15:39:31

标签: http binary multipart w3c

我想通过HTTP传输二进制内容。我怀疑,发送包含二进制文件和简短元数据内容的“多部分”正文是否是一个好主意。

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


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

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

1 个答案:

答案 0 :(得分:1)

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

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)