apache HTTP 206 Partial Content状态消息是什么意思?如何完全加载资源?

hgtggwj0  于 2023-02-05  发布在  Apache
关注(0)|答案(4)|浏览(397)

我有一些图像标签在这样的网站上。

<img src="img.png"/>

当我尝试加载它们时,它们只加载了一半。当我在网络控制台中检查请求时,我看到响应是:
206部分内容
我在谷歌上搜索了一下,它说如果在标题中设置了一个范围,它会是这样的。但是这些标题实际上是在哪里设置的呢?我如何避免这种情况并加载完整的图像?

f0brbegy

f0brbegy1#

问题Why does Firebug show a "206 Partial Content" response on a video loading request?
当客户端请求范围(例如“给予我视频数据的第一个2MB”)时,该部分内容代码(206)* 可以 * 从服务器发送。
这对于分块下载数据以避免获取未使用的资源是至关重要的。(我很少在线观看完整的视频。)看看Range头的传出请求。

eanckbw9

eanckbw92#

客户端可以通过另一个调用来获取其余的数据(或下一位),你不需要做任何事情,他们最终会得到完整的图像,即使需要几个http调用。

vsmadaxz

vsmadaxz3#

首先:
HTTP**206 Partial Contentsuccess status响应代码指示请求已成功,响应正文包含请求的数据范围,如请求的Range标头中所述。
如果只有一个范围,则整个响应的Content-Type设置为文档的类型,并提供Content-Range
如果发送回多个范围,则Content-Type设置为
multipart/byteranges,并且每个片段覆盖一个范围,用Content-RangeContent-Type描述该范围。
From Mozilla's excellent HTTP status code reference.
下一篇:
在资源上设置的HTTP头通常是由Web服务器设置的。但是,如果文件很大,例如正在加载的资源的视频文件the browser can request a chunk。通常,客户端发起的请求会返回
HTTP 206**标头。apache中资源的标头设置在httpd.confmod_headers部分中。查找以下行,查看是否打开了部分内容:

Header set Accept-Ranges bytes

本节控制apache设置的头的行为,因此将是一个很好的起点。
设置头文件可以用很多不同的方法来完成,例如,当使用apache时,你可以控制加载的图像,这样它们就可以被缓存,这可以用[a2enmod module][2]来完成,这将减少服务器的负载。

piah890a

piah890a4#

我在从不同的子域加载字体时也遇到过类似的问题。在我的例子中,由于跨域问题,我得到了206个字体,我只需要在根文件夹中放置一个.htaccess文件就可以解决这个问题:

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>

相关问题