我想通过 HTTP 传输二进制内容。我怀疑发送由二进制文件和简短的元数据内容组成的“多部分”正文是否是个好主意。
我可以在多部分消息中发送二进制内容,而无需对其进行转换(即转换为 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)
关于http - 多部分消息可以包含原始二进制内容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51027240/