我正在为视频文件设置视频传输到电视机顶盒。 我想使用Amazon Cloudfront。 视频文件是通常的http请求,可能包含一个范围标题来请求部分资源(使框中的用户能够跳转到视频中的任何位置)。
我的问题是它正在处理3个盒子中的2个,其中一个会产生问题。
请求如下所示(示例数据):
GET /path/file.mp4 HTTP/1.1
User-Agent: My User Agent
Host:myhost.com
Accept:*/*
Range: bytes=100-200
因此,如果我使用telnet向cloudfront发出请求,我会看到响应是HTTP 1.0:
joe@flimmit-joe:~$ telnet d2zf9fl0izzsf6.cloudfront.net 80
Trying 216.137.61.164...
Connected to d2zf9fl0izzsf6.cloudfront.net.
Escape character is '^]'.
GET /skin/frontend/default/flimmit/images/headerbanners/02_green.png HTTP/1.1
User-Agent: My User Agent
Host:d2zf9fl0izzsf6.cloudfront.net
Accept:*/*
Range: bytes=100-200
HTTP/1.0 206 Partial Content
Date: Sun, 12 Feb 2012 18:42:15 GMT
Server: Apache/2.2.16 (Ubuntu)
Last-Modified: Tue, 26 Jul 2011 10:37:54 GMT
ETag: "1e0b8a-2d2b-4a8f6863ac11a"
Accept-Ranges: bytes
Cache-Control: max-age=2592000
Expires: Tue, 13 Mar 2012 18:42:15 GMT
Content-Type: image/png
Age: 351213
Content-Range: bytes 100-200/11563
Content-Length: 101
X-Cache: Hit from cloudfront
X-Amz-Cf-Id: W2fzPeBSWb8_Ha_UzvIepZH-Z9xibXyRddoHslJZ3TDXyFfjwE3UMQ==,CwiKc8-JGfE77KBVTTOyE9g-OYf7P-bCJZEWGwef9Es5rzhUBYKE8A==
Via: 1.0 972e3ba2f91fd0a38ea062d0cc03be37.cloudfront.net (CloudFront)
Connection: close
q�]#��ĥM�oӘ�i��i��������Y�.��/��ib���&
���
�Ⱦ�00�>�����Y`��X���r���s�=�n�s�b���7MConnection closed by foreign host.
joe@flimmit-joe:~$
不幸的是,我只能有限地访问该盒子以进行测试。 然而,云端的这种行为对我来说似乎很奇怪,所以我想问一下它是否有效。
答案 0 :(得分:3)
用Http 1.0回答Http 1.1请求绝对“有效”。
我将引用RFC2068的附录19.6“超出了协议规范的范围,要求遵守以前的版本。然而,HTTP / 1.1是故意设计的,以便使先前版本的支持变得容易。”
http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.6
重要的部分基本上是RFC不会强制执行Http 1.1的答案,所以它取决于服务器。