推荐答案
HTTP 协议中的 Location
头部用于在响应中指示客户端应该重定向到的 URL。它通常与 3xx
状态码(如 301 Moved Permanently
或 302 Found
)一起使用,告诉客户端资源已经被移动到了一个新的位置。
用法示例
HTTP/1.1 302 Found Location: https://example.com/new-location
在这个例子中,服务器告诉客户端资源已经被临时移动到了 https://example.com/new-location
,客户端应该向这个新的 URL 发起请求。
本题详细解读
作用
Location
头部的主要作用是指示客户端进行重定向。当服务器返回一个 3xx
状态码时,客户端会根据 Location
头部的值自动向新的 URL 发起请求。这对于处理资源迁移、URL 重写或负载均衡等场景非常有用。
使用场景
- 永久重定向(301):当资源的 URL 永久改变时,服务器会返回
301 Moved Permanently
状态码,并在Location
头部中指定新的 URL。 - 临时重定向(302):当资源的 URL 临时改变时,服务器会返回
302 Found
状态码,并在Location
头部中指定临时的 URL。 - 其他重定向:如
303 See Other
、307 Temporary Redirect
等,也会使用Location
头部来指定重定向的目标。
注意事项
Location
头部的值必须是一个绝对 URL,不能是相对路径。- 如果
Location
头部指定的 URL 无效,客户端可能会忽略重定向请求。 - 在某些情况下,
Location
头部也可以用于非重定向的场景,例如在201 Created
响应中指示新创建资源的 URL。
示例代码
const http = require('http'); http.createServer((req, res) => { res.writeHead(302, { 'Location': 'https://example.com/new-location' }); res.end(); }).listen(3000);
在这个 Node.js 示例中,服务器会在收到请求时返回 302 Found
状态码,并在 Location
头部中指定重定向的目标 URL。