SyMind / learning

路漫漫其修远兮,吾将上下而求索。
10 stars 1 forks source link

为什么浏览器中请求视频返回的报文为 206 Partial Content #63

Open SyMind opened 1 year ago

SyMind commented 1 year ago

原文:https://stackoverflow.com/questions/9755168/why-does-firebug-show-a-206-partial-content-response-on-a-video-loading-reques

当客户端要求返回文件的某一部分时(例如,给我视频的前 2MB 数据),服务器端返回 Partial Content 状态码(206)。

这对于可以分块下载的数据至关重要,这样可以避免获取不使用的资源。(我很少在网上看完整的视频。)发出的请求包含 Range 标头。

参考 Status Codes (RFC2616 - HTTP/1.1)

10.2.7 206 Partial Content: 服务端已完成对资源的部分 GET 请求。请求必须包括一个 Range 头(第14.35节),表明需要的部分,并且可以包括一个 If-Range 头(第14.27节),当字段值中的条件得到满足时,Range 头才会起作用。

Range header 节中:

如果服务器支持 Range 头,并且指定的部分可用于该实体。 如果 GET 成功,则 GET 中由于 Range 头的存在返回的内容会发生变化。换句话说,响应的状态码为 206(Partial Content)而不非 200(OK)。