本文目录导读:
- 1xx:信息响应(Informational)
- 2xx:成功响应(Success)
- 3xx:重定向(Redirection)
- 4xx:客户端错误(Client Error)
- 5xx:服务器错误(Server Error)
- 快速记忆口诀:
HTTP状态码(HTTP Status Code)是服务器对客户端请求的响应结果标识,用于表示请求的处理状态,它们通常被分为五大类,每类以不同的数字开头,代表不同的响应含义。
以下是详细的分类及常见状态码举例:
1xx:信息响应(Informational)
- 含义:请求已接收,正在处理中,这类状态码通常是临时性的,表示服务器正在等待进一步的操作。
- 常见状态码:
- 100 Continue:服务器已收到请求头,客户端应继续发送请求体(通常用于POST大文件前检查权限)。
- 101 Switching Protocols:服务器理解并同意客户端的协议切换请求(如WebSocket升级)。
2xx:成功响应(Success)
- 含义:请求已成功被服务器接收、理解并接受。
- 常见状态码:
- 200 OK:请求成功,这是最标准、最常见的成功状态码。
- 201 Created:请求已被实现,且服务器创建了一个新资源(通常用于POST或PUT请求)。
- 204 No Content:服务器成功处理了请求,但没有返回任何内容(用于删除操作或仅需更新头部信息时)。
3xx:重定向(Redirection)
- 含义:客户端需要采取进一步的操作才能完成请求,通常用于资源位置发生变化或需要通过其他URL访问。
- 常见状态码:
- 301 Moved Permanently:资源已被永久移动到新URL(搜索引擎会更新链接)。
- 302 Found:资源临时移动到新URL(搜索引擎会保留原链接)。
- 304 Not Modified:客户端请求的资源未发生变化(通常配合缓存使用,服务器无需返回资源内容)。
4xx:客户端错误(Client Error)
- 含义:请求包含语法错误或无法完成请求,问题主要出在客户端(如浏览器、爬虫、App)。
- 常见状态码:
- 400 Bad Request:服务器无法理解请求的格式(如参数错误、JSON格式错误)。
- 401 Unauthorized:请求需要身份验证(未登录或登录已过期)。
- 403 Forbidden:服务器理解请求,但拒绝执行(已登录但没有权限访问该资源)。
- 404 Not Found:服务器找不到请求的资源(URL不存在)。
- 405 Method Not Allowed:请求方法不被允许(如接口只支持POST,但用了GET)。
- 429 Too Many Requests:客户端在一定时间内发送了太多请求(触发限流/频率控制)。
5xx:服务器错误(Server Error)
- 含义:服务器在处理请求时发生了内部错误,问题通常出在服务器端(代码、数据库、配置等)。
- 常见状态码:
- 500 Internal Server Error:服务器内部错误(最常见的通用错误,代码抛异常了)。
- 502 Bad Gateway:服务器作为网关或代理,从上游服务器收到无效响应(如Nginx代理时后端PHP服务挂了)。
- 503 Service Unavailable:服务器暂时无法处理请求(通常因过载或维护中)。
- 504 Gateway Timeout:服务器作为网关或代理,未能及时从上游服务器收到响应(请求超时)。
快速记忆口诀:
- 1xx:你继续(告诉我你还在)
- 2xx:没问题(成功了)
- 3xx:去哪儿?(换个地方找)
- 4xx:你错了(客户端的问题)
- 5xx:我错了(服务器的问题)
只要记住1信息、2成功、3重定向、4客户端错误、5服务器错误,基本就掌握了HTTP状态码的核心分类逻辑。