HTTP 状态码
字数 973 2025-11-25 00:54:19

HTTP 状态码

  1. 基本概念
    HTTP 状态码是服务器对客户端请求的响应标识,由三位数字组成。它位于 HTTP 响应的起始行(状态行)中,用于快速告知请求结果(如成功、错误或需进一步操作)。状态码的第一个数字定义类别:

    • 1xx(信息类):请求已接收,需继续处理。
    • 2xx(成功类):请求被成功处理。
    • 3xx(重定向类):需客户端进一步操作以完成请求。
    • 4xx(客户端错误类):请求包含错误或无法完成。
    • 5xx(服务器错误类):服务器处理请求时失败。
  2. 常见状态码详解

    • 200 OK:请求成功,响应体包含所需资源(如网页、数据)。
    • 301 Moved Permanently:资源永久重定向到新 URL,客户端应更新书签。
    • 302 Found:资源临时重定向,客户端本次请求新 URL,但保留原地址。
    • 400 Bad Request:请求语法错误,服务器无法解析(如参数格式错误)。
    • 401 Unauthorized:需身份认证(如未登录)。
    • 403 Forbidden:服务器拒绝请求(如权限不足)。
    • 404 Not Found:请求资源不存在。
    • 500 Internal Server Error:服务器内部错误(如代码异常)。
    • 503 Service Unavailable:服务器暂时过载或维护,无法处理请求。
  3. 状态码的应用场景

    • 缓存控制
      301 状态码会触发客户端缓存新 URL,而 302 不会。
    • 错误处理
      4xx 错误需客户端检查请求(如修正参数),5xx 错误需服务端排查。
    • 重定向链
      多次重定向(如 301→302)可能导致性能损耗,需合理设计。
  4. 扩展知识

    • 自定义状态码
      部分框架支持非标准状态码(如 499 “客户端关闭请求”),但需确保兼容性。
    • 状态码与 SEO
      搜索引擎会根据状态码调整索引(如 301 传递权重,404 移除页面)。
    • HTTP/2 与状态码
      协议优化不影响状态码定义,但多路复用机制可能改变错误传递方式(如流错误)。
  5. 实践建议

    • API 设计时精准使用状态码(如 201 Created 表示资源创建成功)。
    • 避免滥用 200 OK 包裹错误信息,应直接返回 4xx/5xx 状态码。
    • 监控 5xx 错误率及 4xx 异常峰值,以优化系统稳定性与用户体验。
HTTP 状态码 基本概念 HTTP 状态码是服务器对客户端请求的响应标识,由三位数字组成。它位于 HTTP 响应的起始行(状态行)中,用于快速告知请求结果(如成功、错误或需进一步操作)。状态码的第一个数字定义类别: 1xx(信息类) :请求已接收,需继续处理。 2xx(成功类) :请求被成功处理。 3xx(重定向类) :需客户端进一步操作以完成请求。 4xx(客户端错误类) :请求包含错误或无法完成。 5xx(服务器错误类) :服务器处理请求时失败。 常见状态码详解 200 OK :请求成功,响应体包含所需资源(如网页、数据)。 301 Moved Permanently :资源永久重定向到新 URL,客户端应更新书签。 302 Found :资源临时重定向,客户端本次请求新 URL,但保留原地址。 400 Bad Request :请求语法错误,服务器无法解析(如参数格式错误)。 401 Unauthorized :需身份认证(如未登录)。 403 Forbidden :服务器拒绝请求(如权限不足)。 404 Not Found :请求资源不存在。 500 Internal Server Error :服务器内部错误(如代码异常)。 503 Service Unavailable :服务器暂时过载或维护,无法处理请求。 状态码的应用场景 缓存控制 : 301 状态码会触发客户端缓存新 URL,而 302 不会。 错误处理 : 4xx 错误需客户端检查请求(如修正参数),5xx 错误需服务端排查。 重定向链 : 多次重定向(如 301→302)可能导致性能损耗,需合理设计。 扩展知识 自定义状态码 : 部分框架支持非标准状态码(如 499 “客户端关闭请求”),但需确保兼容性。 状态码与 SEO : 搜索引擎会根据状态码调整索引(如 301 传递权重,404 移除页面)。 HTTP/2 与状态码 : 协议优化不影响状态码定义,但多路复用机制可能改变错误传递方式(如流错误)。 实践建议 API 设计时精准使用状态码(如 201 Created 表示资源创建成功)。 避免滥用 200 OK 包裹错误信息,应直接返回 4xx/5xx 状态码。 监控 5xx 错误率及 4xx 异常峰值,以优化系统稳定性与用户体验。