5月27日 01:10

HTTP 有哪些常用的状态码?

按分类记:

2xx 成功

  • 200 OK:请求成功
  • 201 Created:创建资源成功(POST 返回)
  • 204 No Content:成功但无响应体(DELETE 后常见)

3xx 重定向

  • 301 Moved Permanently:永久重定向(浏览器会缓存,下次直接跳)
  • 302 Found:临时重定向
  • 304 Not Modified:资源未修改,用缓存(配合 If-Modified-Since/ETag)
  • 307/308:和 301/302 类似,但 POST 转 GET 行为不同

4xx 客户端错误

  • 400 Bad Request:请求格式错误
  • 401 Unauthorized:未认证
  • 403 Forbidden:已认证但无权限
  • 404 Not Found:资源不存在
  • 405 Method Not Allowed:方法不对(比如用 GET 调了 POST 接口)
  • 429 Too Many Requests:被限流

5xx 服务端错误

  • 500 Internal Server Error:服务端内部错误
  • 502 Bad Gateway:网关/代理收到无效上游响应
  • 503 Service Unavailable:服务暂不可用(维护/过载)
  • 504 Gateway Timeout:网关超时

追问

301 和 302 的区别?

301 是永久的——浏览器会缓存重定向目标,之后相同 URL 直接跳转,不用再请求原地址。SEO 权重转移。302 是临时的——每次都会请求原地址再跳转。语义不同,对 SEO 和缓存影响很大。

401 和 403 怎么区分?

401 是"你是谁?"——没登录或 token 过期,需要你去认证。403 是"我知道你是谁,但不让你看"——认证通过了但权限不够。

502 和 504 的区别?

502 是网关从上游收到了无效/不完整的响应(服务崩溃、配置错误)。504 是网关在规定时间内没等到上游响应(超时)。排查方向:502 看服务有没有挂,504 看服务是不是太慢。

标签:网络