回应HTTP 1.1请求使用HTTP 1.0响应是否有效?

3

我正在为电视机顶盒设置视频传递,希望使用Amazon Cloudfront。这些视频文件是通过通常的HTTP请求获取的,可能包含范围头以请求部分资源(以使盒子上的用户能够跳转到视频中的任何位置)。

我的问题是:其中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:~$ 

很遗憾,我只能有限地访问测试用的盒子。 然而,CloudFront 的这种行为对我来说似乎很奇怪,所以我想问一下这是否有效。

1个回答

4

对于一个Http 1.1请求,使用Http 1.0进行回复是完全“有效”的。

我将引用RFC2068的附录19.6:“协议规范不应强制执行对先前版本的兼容性。然而,HTTP/1.1被有意设计为易于支持以前的版本。”

http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.6

重要的部分基本上是RFC并不强制要求Http 1.1的响应,因此这取决于服务器。

这个有安全隐患吗?从安全角度来看,这个能被滥用吗? - achudars

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