HTTP 状态码
开发五类响应码(RFC 9110)
HTTP 状态码用三位数字表示请求结果:1xx 信息、2xx 成功、3xx 重定向、4xx 客户端错误、5xx 服务端错误,现行语义规范为 RFC 9110(2022)。
分类与高频成员
2xx:200 OK、201 Created(POST 建资源成功)、204 No Content。3xx:301 永久重定向(SEO 权重转移)、302 临时、304 Not Modified(缓存协商)、307/308(保留请求方法的现代重定向)。4xx:400、401 未认证、403 已认证但无权、404、429 限流。5xx:500、502 网关错误、503 暂不可用。
301/302 与 307/308
301/302 允许客户端把 POST 降级为 GET(历史兼容行为),307/308(RFC 7538/7538 与 7231 时代引入)则强制保留原方法。API 迁移必须用 307/308;页面 SEO 迁移用 301。RFC 9110(2022)整合了 RFC 7230–7235 时代的状态码语义。
401 还是 403
401 = "不知道你是谁"(未携带/无效凭证,响应应带 WWW-Authenticate);403 = "知道你是谁但不行"(服务器拒绝,且通常不宜重试)。把"未登录"写成 403 是最常见的语义误用。