HTTP 状态码
字数 973 2025-11-25 00:54:19
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 异常峰值,以优化系统稳定性与用户体验。