📜  当 HTTP 响应指示重定向时,哪个标头定义了客户端应重定向到的 URL? (1)

📅  最后修改于: 2023-12-03 15:09:50.566000             🧑  作者: Mango

当 HTTP 响应指示重定向时,哪个标头定义了客户端应重定向到的 URL?

在 HTTP 响应中,当服务器想要重定向客户端到一个新的 URL 时,会在响应头中设置特定的标头,其中 Location 标头定义了客户端应该重定向到的新 URL。

例如,如果客户端发送一个 HTTP 请求访问 http://example.com/foo,但是服务器需要将其重定向到 http://example.com/bar,那么服务器会发送一个 HTTP 响应,状态码为 302(重定向),并在响应头中包含以下标头:

HTTP/1.1 302 Found
Location: http://example.com/bar

客户端收到响应后将重定向到新的 URL,即 http://example.com/bar。客户端可以使用任何 HTTP 请求方法来访问新的 URL,例如 GET、POST、PUT 等。

需要注意的是,如果服务器发送的是 301(永久重定向)状态码而不是 302,那么客户端会缓存重定向信息,从而可能会影响后续的请求。因此,除非确实需要永久重定向,否则通常应该使用 302 状态码。

下面是一个响应示例:

HTTP/1.1 302 Found
Location: https://www.baidu.com
Content-Type: text/html; charset=UTF-8
Content-Length: 0
Date: Mon, 11 Oct 2021 06:24:54 GMT
Server: BWS/1.1
X-Xss-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN

其中 Location 标头定义了新 URL:Location: https://www.baidu.com