4

我们有一个有趣的问题,当我们有这样的组合时:

IE 10(有时也有 IE 9)运行 https video.js 播放器 mp4 视频文件的 Apache 2.2/Linux (RH EL 6.3)

当我们有这种组合时,视频播放器会显示一个旋转图标。

当我们检查我们看到的 http 标头时:请求:

GET /tmp/Question123.mp4 HTTP/1.1
Accept */*
If-Unmodified-Since Thu, 11 Jul 2013 19:49:44 GMT
If-Match W/"a074e-50228d-4e141b21b6cfb" 
Range bytes=49152-5251724
User-Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; MALC)
GetContentFeatures.DLNA.ORG 1
Pragma getIfoFileURI.dlna.org
Accept-Language en-US
Accept-Encoding gzip, deflate
Host: mysite.com
Connection Keep-Alive

回复:

HTTP/1.0 412 Precondition Failed 

在 IE 8 上,它似乎使用 flash,所以我们有不同的路径并且它可以工作。在 Firefox/Chrome/Safari 上,一切正常。

我们可以看到的唯一可能导致这种情况的是:Firefox 使用:

If-Modified-Since   Thu, 11 Jul 2013 19:58:37 GMT
If-None-Match   "a074e-50228d-4e141d1edc1b6"

这些是不同的请求标头。

有任何想法吗?

谢谢乔尔

4

1 回答 1

2

问题是由这些请求标头引起的:

If-Unmodified-Since Thu, 11 Jul 2013 19:49:44 GMT
If-Match W/"a074e-50228d-4e141b21b6cfb" 

服务器说“不,我当前版本的资源不符合这些标准,所以我会返回一个 HTTP/412 响应让你知道。”

这些标头存在是因为客户端正在发出 HTTP RANGE 请求(仅请求文件的一部分),因此它需要确保它从服务器返回的文件部分来自相同版本的文件它已经有一部分了。

原始响应上的 HTTP 响应标头是什么?响应中的 ETAG 标头是否正确地用引号括住了它的值?是否只有一个服务器,或者您是跨多个服务器的负载平衡请求?

于 2013-07-11T21:51:57.067 回答