我在像这样的网站上有一些图片标签。
<img src="img.png"/>当我试图加载它们时,它们只加载了一半。当我在网络控制台中检查请求时,我看到响应是:
206部分内容
我用谷歌搜索了一下,它说如果在标题中设置了一个范围,它将是这样的。但是这些头到底是在哪里设置的呢?如何避免这种情况并加载完整的图像?
发布于 2013-04-03 20:33:33
问题Why does Firebug show a "206 Partial Content" response on a video loading request?的From user166390’s answer
当客户端已经请求一个范围时,可以从服务器发送该部分内容代码(
)(例如,“给我第一个2MB的视频数据”)。
它对于以块为单位下载数据至关重要,这样可以避免获取未使用的资源。(我很少在网上看完整的视频。)查看Range标头的传出请求。
发布于 2013-04-03 20:32:55
这取决于客户端进行另一个调用来获取剩余的数据(或下一位)。你不需要做任何事情,他们最终会得到完整的图像,即使需要几次http调用。
发布于 2019-03-25 09:45:29
首先:
HTTP 206 Partial Content成功状态响应代码指示请求已成功,并且其正文包含请求的数据范围,如请求的Range头部中所述。
如果只有一个范围,则将整个响应的Content-Type设置为文档的类型,并提供一个Content-Range。
如果发回几个范围,则将Content-Type设置为multipart/byteranges,并且每个片段覆盖一个范围,并使用Content-Range和Content-Type描述它。
(From Mozilla's excellent HTTP status code reference.)
接下来:
资源上设置的HTTP标头通常由web服务器设置。但是,如果文件很大,如正在加载的资源的视频文件the browser can request a chunk。通常会从客户端发起的请求中返回HTTP 206标头。在apache中设置的资源标头是在httpd.conf的mod_headers部分中设置的。查找以下行,查看是否打开了部分内容:
Header set Accept-Ranges bytes这一部分控制由apache设置的头的行为,因此它将是一个很好的起点。
然而,可以通过许多不同的方式来设置标头。例如,在使用apache时,您可以控制加载的图像,以便它们可以进行缓存。这可以使用[a2enmod module][2]来完成。这将减少服务器上的负载。
https://stackoverflow.com/questions/15787380
复制相似问题