15

我正在设计一个网站,分布在许多服务器上,并且有些页面我需要连续链接多达 4 个重定向。我尝试了一些浏览器(firefox、chrome、IE),它似乎工作正常。

显然,Firefox 的默认限制是连续重定向 20 次,Chrome 的默认似乎是 20 次,而 IE8 的限制似乎是 10 次重定向。

所有主流浏览器允许的最大 HTTP 重定向次数是多少?是10吗?

编辑

为什么我需要 4 个重定向?基本上,用户在一个热点中,她试图去(比如)google.com,有一个本地强制门户网站捕获请求并将用户重定向(#1)到本地服务器。本地服务器检查有关用户的一些信息,但如果它在本地没有数据,它会将用户重定向(#2)到中央网站。如果用户已经登录到这个中央网站,她会被重定向(#3)到另一个服务器(根据用户的不同有不同的门户)。最后,服务器检查用户的权限,如果她有适当的权限,则最终(#4)重定向到本地访问控制器,以便访问适当的服务。相信我,我尽了最大努力删除重定向,但我看不出哪里可以优化。

4

2 回答 2

9

4 重定向应该适用于所有主要浏览器。但是,请考虑减少数量以便为用户提供更快的体验。每个重定向都需要用户和服务器之间的往返行程(如果重定向到不同的服务器,则需要创建新连接)。总的来说,延迟会很显着,可能会惹恼您的用户。

于 2012-06-05T10:16:23.087 回答
3

我也对此感到好奇,但没有找到有关每个浏览器的最大重定向次数的信息。因此,我尝试使用此 PHP 代码对我拥有的每个 Web 浏览器自己进行测试:

<?php
$count = $_GET["c"] ?? 0;
$next = $count+1;
header('Location:'.$_SERVER['PHP_SELF'].'?c='.$next);
exit;

结果是:

  • 20 = 火狐
  • 19 = Chrome、Opera、Brave、Opera Mini、Puffin、UC 浏览器等(可能都是基于闪烁的浏览器)
  • 16 = 野生动物园

问题:所有主流浏览器允许的最大 HTTP 重定向次数是多少?是10吗?

答:根据我的测试,所有主流浏览器允许的最大值是 16。


但我无法测试 IE/Edge,因为我没有 Windows 操作系统。由于 Microsoft Edge 使用 Blink 引擎,所以我认为最多 19 个。您可以使用您自己的服务器或此链接(我的)测试上述代码。显示 ERR_TOO_MANY_REDIRECTS 错误之前的最后一个 URL 查询编号是最大重定向。

于 2020-10-08T01:00:43.413 回答