什么是206部分内容

pra*_*svs 31 html apache request http-response-codes

<img src="img.png"/>
Run Code Online (Sandbox Code Playgroud)

我在网站上有一些像上面的图像.当我尝试加载它们时,它们只加载了一半.当我在控制台中检查请求时.

我看到答案是

"206部分内容"

我用谷歌搜索它,它说如果标题中设置了一个范围,它将是这样的.但这些标题实际设置在哪里?以及如何避免这种情况并加载完整的图像?

csa*_*n92 37

来自user166390对问题的回答为什么Firebug在视频加载请求中显示"206 Partial Content"响应?

这部分内容代码(206)可以从服务器发送当客户端已要求范围(如"给我的视频数据的第一2MB").

以块的形式下载数据是至关重要的,这样可以避免获取未使用的资源.(我很少在线观看完整的视频.)查看Range标题的传出请求.


Ara*_*and 8

首先:

HTTP206 Partial Content成功状态响应代码表示请求已成功,响应正文包含请求的数据范围,如Range请求标头中所述。

如果只有一个范围,则Content-Type整个响应的 被设置为文档的类型,并Content-Range提供 a。

如果发回多个范围,则Content-Type被设置为multipart/byteranges并且每个片段覆盖一个范围,并Content-Range描述Content-Type它。

来自 Mozilla 优秀的 HTTP 状态代码参考。

下一个:

资源上设置的 HTTP 标头通常由 Web 服务器设置。但是,如果文件很大(例如视频文件),则浏览器可以请求正在加载的资源块。通常,HTTP 206客户端发起的请求会返回标头。mod_headersapache 中资源上设置的标头在httpd.conf. 查找以下行以查看部分内容是否已打开:

Header set Accept-Ranges bytes
Run Code Online (Sandbox Code Playgroud)

本节控制 apache 设置的标头的行为,因此它将是一个很好的起点。

然而,可以通过多种不同的方式来设置标头。例如,当使用 apache 时,您可以控制加载的图像,以便它们进行缓存。这可以使用 来完成[a2enmod module][2]。这将减少服务器的负载。


小智 5

由客户端进行另一次调用以获取其余数据(或下一位).你不需要做任何事情,他们最终会获得完整的图像,即使它需要多次http调用.