Apache 对 GET /file.mp3 返回 HTTP 206

Apache 对 GET /file.mp3 返回 HTTP 206

我正在向 apache 上启用 SSL 的站点发出获取请求(因此 wireshark 没有给我任何有用的信息)。

在我的 Apache SSL 访问日志中,我看到以下条目:

1.2.3.4 - my.username [15/Nov/2012:16:52:01 +0000] "GET /uploads/file.mp3 
HTTP/1.1" 206 534400 "https://site.com/uploads/layla.mp3" 
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) 
Ubuntu/12.04 Chromium/18.0.1025.168 Chrome/18.0.1025.168 Safari/535.19"

为什么会发生这种情况?我不熟悉 HTTP 206 响应代码,但在互联网上搜索后我发现这是一个部分内容 GET 请求。我理解正确,我的浏览器发出的是部分 GET 请求,而不是完整文件。对吗?如果是这样,这是浏览器问题还是 Web 服务器指示我的浏览器这样做?我也在 Firefox 中测试过,在两个浏览器中,我都没有收到文件。

如果我将文件重命名为 file.jpg,我可以通过浏览器下载它,然后将其重命名为 .mp3 并播放。

我该如何解决此问题?

答案1

来自RFC2616:

10.2.7 206 部分内容

服务器已完成对资源的部分 GET 请求。请求必须包含 Range 标头字段(第 14.35 节),指示所需范围,并可以包含 If-Range 标头字段(第 14.27 节),以使请求具有条件性。

您可以使用浏览器工具检查资源的请求和响应标头,以验证它们是否符合 RFC;结果将告诉您问题所在。

相关内容