video 标签视频请求多次的原理

转自:https://segmentfault.com/q/1010000005932321

请求视频这类文件的时候因为响应会很大,如果全部下载下来再播放会等待很长时间,用户体验不好,所以服务器会允许浏览器使用range头来请求视频的某一部分,并设置以206的响应码进行响应,来使浏览器可以边播放边请求,优化用户体验。所以会出现状态码为206的响应。

另一方面,浏览器只有在获取到视频的元信息(metadata)后才开始播放视频,而一般不经过优化的视频,其元数据信息存在视频文件末尾。所以会出现连续三个请求的情况:第一个请求是先从0字节找视频的元数据信息,没找到的话,会继续发起一个请求到视频末尾去找,等找到以后,又会重新开始一个请求从视频开头处开始请求,此时视频才开始播放。如果视频经过优化,元数据信息在视频开头,就只会有一个请求了,所以推荐使用HandBrake这类的工具对视频经过网络优化后再上传。

你可能感兴趣的:(video 标签视频请求多次的原理)