我正在向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响应代码,但在Internet上search我可以看到它是一个部分内容的GET请求。 我理解正确,我的浏览器正在进行部分GET请求而不是完整的文件。 那是对的吗? 如果是这样,这是一个浏览器问题,或者是Web服务器指示我的浏览器这样做? 我也在Firefox中testing过,并且在两个浏览器中,我都没有发送这个文件。
如果我将文件重命名为file.jpg,我可以通过我的浏览器下载,并将其重命名为.mp3,然后播放。
我如何解决这个问题?
从RFC2616:
10.2.7 206部分内容
服务器已经完成了资源的部分GET请求。 该请求必须包含一个Range头域(14.35节),表示期望的范围,并且可以包含一个If-Range头域(14.27节)来使请求有条件。
您可以使用浏览器工具来检查资源的请求和响应头,以validation它们是否符合RFC; 结果会告诉你问题在哪里。