我正在构建一个页面(使用 video.js,如果有关系的话),该页面可容纳大量视频的播放器 - 单击图像缩略图上的按钮,就会打开一个模式播放器,播放视频。运行良好;没什么大不了的。我的服务器是 Apache 2.2.15,仅供参考。
问题:当我查看我的服务器日志时,我看到每个视频的条目的 HTTP 代码为 206(部分内容),例如:
GET /videos/a_video.mp4 HTTP/1.1" 206 1130496 "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/7.0.1 Safari/537.73.11"
我不确定这些条目到底是什么意思。当这个页面加载时,1.1 MB 的内容是否真的通过网络推送到客户端,或者这只是客户端在用户真正请求文件时要使用的信息?将所有这些东西转储到用户/客户端上会占用大量带宽(更不用说我的网站了),尤其是在移动连接上。(根据一些额外的日志分析,看起来这些位确实被推送了,但与其他更有知识的人一起检查这似乎是正确的做法……)
答案1
在我看来,这很正常。大多数视频(甚至音频!)播放器每次请求文件的一小部分,然后在用户实际播放视频时请求更多部分。仅当用户代理明确请求文件的特定范围(而不是整个文件)时,才会发送 206。