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

标签 http binary multipart w3c

我想通过 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/

相关文章:

java - orielly 的 MultipartRequest 的一个好的开源替代品是什么?

Java Android 分段下载视频并组合播放

security - 从 EJB 调用 HTTP 时如何传播 WebSphere 安全 token

javascript - 异步请求 Web 资源的特定部分

http - 为什么不使用其余的 HTTP 动词?

javascript - 在 Chrome 中以编程方式获取所有 HTTP header 和流量

python - 在 Python 中从二进制文件中读取和解释数据

algorithm - 计算二进制数的底数对数

python - Python 2 和 3 中的字符串到字节

java - 多部分电子邮件