常见http状态码
HTTP 响应状态码用于表示服务器对客户端请求的处理结果,由三位数字和描述性文本组成。以下是常见的 HTTP 状态码及其意义,按类别分类:
# 1xx(信息性状态码)
表示请求已被接收,需要继续处理。
- 100 Continue:客户端应继续发送请求的剩余部分。
- 101 Switching Protocols:服务器同意切换协议(如升级到 WebSocket)。
- 102 Processing(WebDAV):服务器正在处理请求,但尚未完成。
# 2xx(成功状态码)
表示请求已成功被服务器接收、理解并处理。
- 200 OK:请求成功,响应中包含请求的数据(如 GET 请求)。
- 201 Created:请求成功且服务器创建了新资源(如 POST 请求)。
- 202 Accepted:请求已接受,但尚未处理完成(异步任务)。
- 204 No Content:请求成功,但响应无内容(如 DELETE 请求)。
- 206 Partial Content:服务器返回部分内容(用于分块下载或断点续传)。
# 3xx(重定向状态码)
表示需要客户端进一步操作以完成请求。
- 301 Moved Permanently:资源已永久重定向到新 URL。
- 302 Found(临时重定向):资源临时从其他 URL 响应。
- 304 Not Modified:资源未修改,客户端可使用缓存(与 If-Modified-Since 配合)。
- 307 Temporary Redirect:与 302 类似,但要求保持请求方法不变。
- 308 Permanent Redirect:与 301 类似,但要求保持请求方法不变。
# 4xx(客户端错误状态码)
表示客户端请求有错误。
- 400 Bad Request:请求语法错误,服务器无法理解。
- 401 Unauthorized:需要身份验证(如未提供 token)。
- 403 Forbidden:服务器拒绝访问(权限不足)。
- 404 Not Found:请求的资源不存在。
- 405 Method Not Allowed:请求方法(如 GET/POST)不被允许。
- 408 Request Timeout:客户端请求超时。
- 409 Conflict:请求与服务器当前状态冲突(如重复提交)。
- 429 Too Many Requests:客户端发送过多请求(限流)。
# 5xx(服务器错误状态码)
表示服务器处理请求时出错。
- 500 Internal Server Error:服务器内部错误(如代码异常)。
- 501 Not Implemented:服务器不支持请求的功能。
- 502 Bad Gateway:代理服务器从上游服务器收到无效响应。
- 503 Service Unavailable:服务器暂时不可用(如过载或维护)。
- 504 Gateway Timeout:代理服务器等待上游服务器响应超时。
常见场景示例
- 访问成功:200 OK
- 页面不存在:404 Not Found
- 无权限访问:403 Forbidden
- 服务器崩溃:500 Internal Server Error
- 重定向到新地址:301 Moved Permanently
提示
状态码是 HTTP 协议的标准,但某些服务器可能自定义非标准状态码(如 418 I'm a teapot,彩蛋)。 RESTful API 设计应合理使用状态码(如 201 表示创建成功,204 表示删除成功)。 如果需要更详细的规范,可参考 RFC 9110(HTTP 语义)。
上次更新: 2025/09/05, 8:09:00