开发实战指南
HTTP 重定向:哪些状态保留请求方法
明确选择 303、307 或 308,检查 301 与 302 对 POST 的影响。
选择重定向行为
303 让客户端获取另一个资源,通常使用 GET,常用于表单提交后。
307 和 308 跟随时保留方法与正文,对上传和 API 写请求尤其关键。
POST /submit → 303 Location: /result → GET /result
POST /upload → 307 Location: /new-upload → POST /new-upload不能假定 301 或 302 保留 POST
HTTP 允许常见历史行为:301 或 302 后把 POST 改成 GET,库也可能有自己的跟随控制。
必须保留方法时选择 307 或 308,并测试真实调用客户端。
临时与永久是另一维度
307 是临时,308 是永久,永久性影响缓存与未来目标使用,不只是当前请求。
预计很快切回时,不宜把永久重定向当作随意测试。
检查目标与凭据
重定向可以跨来源或协议,客户端可能去掉敏感头、拒绝跳转或要求正文可重放。
检查最终 URL 与跳转链,代码转换器无法保证各环境都以相同方式转发凭据。