html - 如何使用 206 Partial Content 使浏览器请求范围更小

标签 html google-chrome firefox http-range

我目前正在制作一个视频流服务,其中视频以每个大约 1MB 的 block 进行转码。 Firefox、Chrome 和 IE 的 HTML5 播放器都尽力请求部分内容(通过在请求中添加 Range header )。不幸的是,大多数时候这个标题看起来像这样:

Range:bytes=0-

我不想返回全部内容,只想返回 1MB 的内容,所以我返回这个:

Content-Range:bytes 0-1048575/5074944

现在 Chrome 完全接受了这一点,并不断请求部分内容,直到达到总长度。然而,Firefox 只发出一个包含部分内容而不是全部内容的请求。 Firefox 认为这是完整的内容,因此不会播放完整的视频,只会播放其中的一部分。我如何在 Firefox 中获得与在 Chrome 中相同的行为?我尝试返回 416 Range not Satisfiable,但 Chrome 和 Firefox 似乎在收到此状态代码后都在请求。

最佳答案

所以我最终放弃了这个,看了一下Firefox的源代码。在 Firefox 收到与预期不同的范围的地方,开发人员会放置一条评论,询问在这种情况下该怎么做。规范没有指定在这种情况下应该做什么,因此 Firefox 选择什么都不做。 Chrome 更有创意,并提出了开发人员认为最好的响应(这绝对是我想要的结果)。

看来我不是唯一遇到这个问题的人,否则我不会得到赞成票。问题是:为了让 Firefox 纠正这个问题,我们需要对规范进行更改,我认为这几乎是不可能的。因此,我将关闭此问题并将此帖子标记为答案。

关于html - 如何使用 206 Partial Content 使浏览器请求范围更小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36114598/

相关文章:

javascript - Firefox 没有从 JavaScript 设置 css 样式?

javascript - amcharts 子树在单击之前不应打开

html - 如何使标记完美重叠,使其不会在同一端出现两次?

jquery - 如何让这个 jQueryUI 按钮与使用自定义 CSS 样式创建的按钮大小相同?

javascript - 没有详细信息的 Chrome 未捕获错误?

css - Safari/Chrome 空白 :nowrap text over run

jquery - 如何指定无限(AJAX 加载)轮播的宽度

css - 表格中的粗动态边框会导致 Chrome 出现视觉故障吗?

html - 使用脚本标签模拟 XMP 标签并允许复制内容

html - 图像在 Firefox 中改变大小并失去质量