http 多部分响应和边界

y s*_*ong 5 http

我正在考虑使用 HTTP 多部分来返回动态生成的二进制流(例如 mp4 视频剪辑),然后是签名文件,然后在单个 HTTP 响应消息中将其他内容返回给客户端。就我而言,构建 http 标头字段时 mp4(响应消息的第一部分)的大小是未知的,因此我无法为 mp4 部分设置 Content-Length。我需要使用多部分边界来分隔每个部分。但是我被告知,如果边界字符串出现在 mp4 数据中,则多部分将不起作用。其他人建议对每个部分进行编码(例如 BASE64 编码),以便我可以选择具有非 BASE64 字符的边界,这些字符永远不会出现在 http 响应的任何部分中。问题是 BASE64 会使大小增加 33%,这是我们无法接受的开销。问题是:有没有办法解决这个问题?我错过了什么吗?或者您可能知道一种更好的方法(我们必须在一个 HTTP 响应中返回多个部分)?

非常感谢,

pi.*_*pi. 0

如果客户端理解消息格式,您可以随时删除边界字符串,这样就不会有问题。

您需要记住边界字符串并在数据流中查找它的末端部分,然后仅将数据转发给位于这些部分之间的播放器。