iPhone/iPad Safari 是不是需要视频的“Accept-Ranges”标头?

Posted

技术标签:

【中文标题】iPhone/iPad Safari 是不是需要视频的“Accept-Ranges”标头?【英文标题】:Does iPhone/iPad Safari require 'Accept-Ranges' header for video?iPhone/iPad Safari 是否需要视频的“Accept-Ranges”标头? 【发布时间】:2011-03-24 18:12:17 【问题描述】:

我在从开发服务器提供可在移动 Safari 中播放的视频时遇到问题。我的开发服务器不支持“Accept-Ranges”标头,在阅读了几个论坛后,我发现这可能是我的问题。 Here is an example forum posting saying just that.

这是正确的吗?移动 Safari 是否需要 Accept-Ranges 标头?任何人都可以指出任何实际说明这一点的 Apple 文档吗?

谢谢。

【问题讨论】:

【参考方案1】:

我发现一些 Apple 文档说它确实需要视频。

为 iOS 托管媒体文件的 HTTP 服务器必须支持字节范围 requests,ios 用来在媒体播放中执行随机访问。 (字节范围支持也称为内容范围或部分范围 支持。)大多数(但不是全部)HTTP 1.1 服务器已经支持 字节范围请求。

如果您不确定您的媒体服务器是否支持字节范围 请求,您可以在 OS X 中打开终端应用程序并使用 curl命令行工具从文件中下载一小段 服务器:

curl --range 0-99 http://example.com/test.mov -o /dev/null

如果工具报告它下载了 100 字节,则媒体服务器正确 处理字节范围请求。如果它下载整个文件,你 可能需要更新媒体服务器。

Source: Apple Documentation

【讨论】:

【参考方案2】:

answer above 很有帮助,但实际上并不能回答所提出的问题。

根据HTTP RFC,即使支持字节范围请求,Accept-Ranges 标头也是可选的。

但是,记录在案的 curl 检查意味着答案是否定的:iOS 不需要视频的 Accept-Ranges 标头,但确实需要带有部分内容 (206) 响应的字节范围支持。

免责声明:我没有在实际设备上检查过。

【讨论】:

我已经在几个实际设备上进行了检查 - 如果我在服务器上禁用字节范围支持,任何 Safari 浏览器都会拒绝播放视频。 我认为这部分已经建立,但问题是它是否需要 Accept-Ranges 标头(RFC 不需要这些标头才能使字节范围请求起作用)。 我试图帮助您进行实际的设备测试,但没关系。 谢谢!如果有办法测试第二部分(带有字节范围和带有/不带有接受范围标头),那么我们将得到明确的答案。

以上是关于iPhone/iPad Safari 是不是需要视频的“Accept-Ranges”标头?的主要内容,如果未能解决你的问题,请参考以下文章

Safari iPhone/iPad 中的 Nan 错误日期

CSS 背景位置在 Mobile Safari (iPhone/iPad) 中不起作用

为啥在 iOS Safari Mobile (iPhone / iPad) 中没有触发模糊事件?

CSS 跨浏览器问题 - 旋转在 Safari、Ipad 和 Iphone 上不起作用

在 Iphone、Ipad 和使用 Safari 浏览器中 - 警报“使用 myapp 打开”

在移动 safari (html5) 中为离线 iphone/ipad 网络应用程序缓存视频内容?