首页/网络/协议速查/Location 目标地址
HTTP 头与缓存70 条

Location 目标地址

3xx 重定向的新地址,或 201 创建成功时新资源的 URL;可为相对引用(解析基于请求 URL)。

协议速查网络更新于 2026-10-13

Location 是什么

Location 是响应里告诉客户端「去这里」的字段:3xx 重定向时给出新地址,201 创建成功时给出新资源地址,202 也常用它指向任务状态查询地址。它的值可以是相对引用,此时按请求 URL 解析。它是标准里唯一被广泛用于「指向另一个资源」的响应头,跳转与创建两类语义都靠它承载。

基本信息

名称Location
作用重定向目标 / 新资源地址
规范RFC 9110 §10.2.2
常见配合301、302、307、308、201、202
取值形式绝对 URL 最稳,相对引用按请求 URL 解析
权限要求服务端配置,无需特殊权限

重定向状态码对照

状态码方法是否保留适用场景
301语义为永久,客户端常把 POST 改 GET旧地址永久迁移,搜索引擎可传递权重
302客户端常把 POST 改 GET临时跳转,兼容性最好
307严格保留方法与请求体临时跳转且必须保持 POST
308严格保留方法与请求体,永久永久跳转且必须保持 POST
304不产生跳转条件请求命中,不涉及 Location

查看跳转目标

查看跳转目标
curl -si https://example.com/old | grep -iE '^(HTTP|location)'
# HTTP/1.1 301 Moved Permanently
# Location: https://example.com/new
curl -sIL https://example.com/old | grep -cE '^HTTP/'      # 数一下跳转链有几跳
curl -si -X POST https://api.example.com/users -d '{}' | grep -i '^location'   # 201 场景

典型使用场景

  • 站点改版后把旧 URL 永久指向新 URL,保住已有的搜索收录
  • HTTP 自动跳转到 HTTPS,或统一补齐 www 前缀
  • 短链接服务把短码指向真实长地址
  • 创建接口返回新资源地址,客户端不必再去查列表
  • 异步任务用 202 + Location 给出进度查询地址

落地注意

  • 跳转链尽量不超过一跳,链路过长会拖慢首屏并让来源信息层层丢失
  • 循环跳转是「重定向次数过多」的直接原因,上线前用 curl -IL 数一下跳数
  • HTTPS 站点内部跳转必须保持 https,跨协议降级会被浏览器拦截或告警
  • 301 会被浏览器与 CDN 积极缓存,配错了很难立刻撤回
Location 的值若来自用户可控参数(如 ?next=),必须做白名单校验,否则形成开放重定向,常被用于钓鱼与令牌窃取。

易错点

  • 相对 Location 在不同代理与路径重写下解析结果不同,跨域跳转务必用绝对 URL
  • 把未编码的中文或空格写进 Location,部分客户端会直接拒绝跟随
  • POST 之后用 301/302 跳转,方法被改成 GET、请求体丢失,表现为「提交完变成一个空查询页」
  • 把内网管理地址或带口令的 URL 放进 Location,泄漏内部拓扑与凭据

数据来源与参考

  • RFC 9110 §10.2.2 Location
  • RFC 9110 §15.4(重定向语义)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌