我想通过HTTP传输二进制内容。我怀疑,发送包含二进制文件和简短元数据内容的“多部分”正文是否是一个好主意。
我可以在多部分消息中发送二进制内容,而不必进行转换(即BASE64)吗?
W3C specification似乎并没有禁止它-但是未转义的二进制内容可能恰好包含封装边界,不是吗?
我想在chrome的开发人员工具集中查看数据-但有趣的部分没有显示。
答案 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)