Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 301重定向的详细信息_Php_Http_Redirect - Fatal编程技术网

Php 301重定向的详细信息

Php 301重定向的详细信息,php,http,redirect,Php,Http,Redirect,我正在用PHP做一个赋值,如果URL输入有小错误,我已经实现了301重定向。这让我想到重定向实际上是如何工作的。我使用的是一些非常基本的东西,比如: 标题(“位置:https://www.example.com"); 我还注意到,当输入目录时,Apache会自动重定向,而不带尾随斜杠。结果是一样的 我的理解是服务器发送带有301状态和适当位置头的响应。现在,客户机是否需要发出另一个请求,或者服务器是否自动发送正确的资源?此外,客户端是否可以忽略重定向?当返回重定向时,客户端会向新URL发出另一个

我正在用PHP做一个赋值,如果URL输入有小错误,我已经实现了301重定向。这让我想到重定向实际上是如何工作的。我使用的是一些非常基本的东西,比如:

标题(“位置:https://www.example.com");

我还注意到,当输入目录时,Apache会自动重定向,而不带尾随斜杠。结果是一样的


我的理解是服务器发送带有301状态和适当位置头的响应。现在,客户机是否需要发出另一个请求,或者服务器是否自动发送正确的资源?此外,客户端是否可以忽略重定向?

当返回重定向时,客户端会向新URL发出另一个请求。重定向可能指向完全不同的服务器,因此原始服务器无法自行发送正确的资源。即使服务器可以自己返回资源,客户机也需要知道新的URL,因为其中的相对URL需要相对于该位置而不是原始位置进行解析


客户端当然可以忽略重定向。如果使用
--location
选项,则
curl
客户端仅遵循重定向。大多数客户端对满足单个请求所遵循的重定向数量也有限制,以防止重定向循环。

当重定向返回时,客户端会向新URL发出另一个请求。重定向可能指向完全不同的服务器,因此原始服务器无法自行发送正确的资源。即使服务器可以自己返回资源,客户机也需要知道新的URL,因为其中的相对URL需要相对于该位置而不是原始位置进行解析


客户端当然可以忽略重定向。如果使用
--location
选项,则
curl
客户端仅遵循重定向。大多数客户端对满足单个请求所遵循的重定向数量也有限制,以防止重定向循环。

客户端发出另一个请求。客户端发出另一个请求。通过将Location header设置为指向调用header()的PHP脚本,重定向循环很容易演示。看起来很像无限递归。通过将Location header设置为指向调用header()的PHP脚本,重定向循环很容易演示。看起来很像无限递归。