我正在设计一个分布在许多服务器上的网站,有些页面我需要连续最多连接4个重定向。我尝试了一些浏览器(firefox,chrome,IE),似乎工作正常。
显然,Firefox的默认限制是连续20次重定向,Chrome的默认值似乎是20,而IE8的限制似乎是10次重定向。
所有主流浏览器允许的最大HTTP重定向数是多少?是10吗?
修改:
为什么我需要4次重定向?基本上,用户处于热点,她试图去(比方说)google.com,有一个本地强制门户网站捕获请求并将用户重定向(#1)到本地服务器。本地服务器检查有关用户的一些信息,但如果它没有本地数据,则会将用户重定向(#2)到中央网站。如果用户已登录此中央网站,则会将其重定向(#3)到另一台服务器(根据用户的不同,有不同的门户网站)。最后,服务器检查用户的权限,如果她具有适当的权限,则最终(#4)重定向到本地访问控制器,以便访问适当的服务。相信我,我尽力去除重定向,但我看不出这可以优化的地方。
答案 0 :(得分:8)
4个重定向应该适用于所有主流浏览器。但是,请考虑减少数量,以便为用户提供更快的体验。每次重定向都需要用户和服务器之间的往返(如果要重定向到不同的服务器,则需要创建新连接)。总的来说,延迟会非常严重,可能会让用户感到烦恼。
答案 1 :(得分:1)
我对此也感到好奇,但是没有找到有关每个浏览器最大重定向数量的信息。因此,我尝试使用此PHP代码对我拥有的每个Web浏览器进行测试:
<?php
$count = $_GET["c"] ?? 0;
$next = $count+1;
header('Location:'.$_SERVER['PHP_SELF'].'?c='.$next);
exit;
结果是:
但是我没有Windows操作系统,所以无法测试IE / Edge。由于Microsoft Edge使用Blink引擎,因此我认为最大也为19。 您可以使用自己的服务器或this link(我的服务器)测试以上代码。直到显示ERR_TOO_MANY_REDIRECTS错误为止的最后一个URL查询号是最大重定向。