HTTP 状态码按首位分五类:1xx 信息(如 100 Continue)、2xx 成功、3xx 重定向、4xx 客户端错误、5xx 服务端错误。
常见状态码:
- 200 OK 成功;201 Created 创建成功;204 No Content 成功但无响应体
- 301 永久重定向;302 临时重定向;304 Not Modified 缓存有效
- 400 Bad Request 请求格式错误;401 Unauthorized 未认证;403 Forbidden 无权限;404 Not Found;405 方法不允许;429 请求过多
- 500 服务器内部错误;502 Bad Gateway 网关上游错误;503 服务不可用;504 网关超时
301 与 302 的区别:301 表示资源永久迁移,浏览器和搜索引擎会记住新地址并更新索引(权重转移),后续直接访问新地址;302 表示临时跳转,原地址继续有效,搜索引擎不更新索引。典型场景:网站换域名用 301;未登录临时跳登录页用 302。
易错点:历史上 301/302 实现中浏览器常把 POST 重定向改为 GET,为此 HTTP/1.1 增加了 307/308 严格保持原方法和 body。
追问方向:401 与 403 的区别、304 与协商缓存的配合。