如何修复“跨主机名并行下载”的问题

温馨提示:注册会员付费购买资源可永久免费下载更新版本

错误类型: HTTP错误 错误名称: 跨主机名并行下载 英文名称: parallelize downloads across hostnames 错误描述: 这原则上不是一个错误,而是使用旧的HTTP协议,肯能存在跨域并行下载影响网站加载速度的问题。服务器采用HTTP/2以上协议是不存在该问题的。

如果在您的网站上发现潜在的连接问题,大多数网站速度测试工具将显示“跨主机名并行下载”警告。虽然在大多数情况下很容易修复,但在某些情况下,您可以简单地忽略它。

在本文中,我们将了解是什么原因导致了“跨主机名并行下载”的警告,以及如何解决这个问题。

什么原因导致「跨主机名并行下载」的问题?

“跨主机名并行下载”错误通常出现在有大量请求的网站上。这是怎么发生的:

HTTP 1.x协议决定了单用户客户端最多可以与任何服务器建立两个连接。这意味着如果队列中有太多的资源要加载,可能会造成积压。

另一方面,大多数浏览器也有一些限制——每个域最多六个连接。如果你打开了太多的标签,你将很容易达到这个限制。

在大多数情况下,人们会试图重新连接,或者试图提供多个子域来避免限制(我们将在后面讨论)。

然而,这仅发生在HTTP 1.x连接上。

如果你使用HTTP/2和安全连接,这将不再是一个问题。HTTP/2是修订版,允许并行下载。当然,现在大多数主机服务提供商使用HTTP/2而不是HTTP 1.x

话虽如此,当你在一个HTTP/2连接上时,忽略“跨主机名并行下载”的警告是安全的。

一些工具(如GTMetrix或Pingdom)可能仍然会得到这个错误——使用不同的名称——不管它对您是否是一个实际问题。

修复“跨主机名并行下载”错误

如前所述,为了避免限制,人们试图使用子域管理资产来欺骗浏览器,允许更多的并行连接。这种做法被称为域分片。

域名碎片化是一种利用多个子域来增加同时下载资源数量的方法。因此,您可以使用域碎片来修复“跨主机名并行下载”错误。

请记住,域名碎片化也会留下负面影响,例如:

DNS查找时间增加

缓存功能丢失

手机浏览器的潜在问题

基本上,域名碎片化有两个步骤——建立子域和编辑function.php文件。

设置子域

域名碎片化的第一步是创建多个子域或CNAME记录。但是,这可能会分割对静态内容的请求。

要做到这一点,你可以去你的域名管理面板,并选择域名类别下的子域。(注:不同域名服务商可能略有不同)

在空白色栏中输入子域名称,然后点按“创建”。您可以重复此步骤来创建多个条目。很多时候,加三个子域就够了。

设置子域后,您可以编辑functions.php文件。

编辑主题functions.php文件

域名碎片化的第二步是编辑主题function.php文件以并行化主机名。

你可以进入WordPress Dashboard->外观->主题编辑器,然后选择主题功能(functions.php)。

接下来,将以下代码添加到functions.php文件中:

function parallelize_hostnames($url, $id) {$hostname = par_get_hostname($url); //call supplemental function$url = str_replace(parse_url(get_bloginfo(‘url’), PHP_URL_HOST), $hostname, $url);return $url;}function par_get_hostname($name) {$subdomains = array(‘media1.mydomain.com’,’media2.mydomain.com’); //add your subdomains here, as many as you want.$host = abs(crc32(basename($name)) % count($subdomains));$hostname = $subdomains[$host];return $hostname;}add_filter(‘wp_get_attachment_url’, ‘parallelize_hostnames’, 10, 2);

请注意,您需要使用您创建的子域来更改$subdomains的值。此外,确保所有子域具有相同的路径,以避免任何错误。

完成后,单击更新文件。就是这样!

您还可以对CDN提供商(如KeyCDN)执行相同的步骤来修复“跨主机名并行下载”错误。但是,由于大多数CDN提供商使用HTTP/2,因此不建议域名碎片化。

总结

如果在测试网站时遇到“跨主机名并行下载”的警告,请不要惊慌。它的发生是由于浏览器和HTTP 1.x连接的限制。

总之,您可以通过使用域名分段方法分两步修复错误:

设置子域

编辑functions.php文件

但是,如果您的主机服务提供商已经使用HTTP/2,您可以安全地忽略此错误。

声明:

1,本站分享的资源来源于用户上传或网络分享,如有侵权请联系站长。

2,本站软件分享目的仅供大家学习和交流,请不要用于商业用途,下载后请于24小时后删除。

3,如果你也有好的建站资源,可以投稿到本站。

4,本站提供的所有资源不包含技术服务请大家谅解!

5,如有链接无法下载,请联系站长!

6,特别声明:仅供参考学习,不提供技术支持,建议购买正版!如果发布资源侵犯了您的利益请留言告知!


创网站长资源网 » 如何修复“跨主机名并行下载”的问题