HTTP多部分响应和边界

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

0
如果客户端理解消息格式,您可以始终剥离边界字符串,因此在那里您不会有问题。
您需要记住边界字符串,并在数据流中寻找其结束部分,仅将位于这些部分之间的数据转发给播放器。

边界字符串在开始时作为HTTP头字段发送到客户端,是的,客户端应该理解它。问题在于,如果边界出现在“部分”的正文中,它将被视为错误的边界处理。 - y song

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接