🚀 1️⃣ HTTP 状态码的作用
- HTTP 状态码是服务器返回给客户端的响应状态,用于表示请求的处理结果。
- 它由三位数字组成,不同的状态码表示不同的含义。
- 常见的状态码分为五类:
1xx
:信息性响应2xx
:成功响应3xx
:重定向4xx
:客户端错误5xx
:服务器错误
⚙️ 2️⃣ 常见状态码分类及解释
✅ 1xx:信息性响应
100 Continue
→ 表示服务器已接收请求的部分内容,客户端继续发送。101 Switching Protocols
→ 切换协议,例如从 HTTP 切换到 WebSocket。
✅ 2xx:成功响应
200 OK
→ 请求成功,返回数据。201 Created
→ 数据创建成功(如POST
创建新资源)。202 Accepted
→ 请求已接收,但尚未处理完成。204 No Content
→ 请求成功,但没有返回数据。
✅ 3xx:重定向
301 Moved Permanently
→ 永久重定向,资源已被移动。302 Found
→ 临时重定向,资源暂时在其他位置。304 Not Modified
→ 请求的资源未改变,使用缓存版本。307 Temporary Redirect
→ 临时重定向,保留请求方法。
✅ 4xx:客户端错误
400 Bad Request
→ 请求格式错误或参数无效。401 Unauthorized
→ 未授权,缺少认证信息。403 Forbidden
→ 请求被拒绝,权限不足。404 Not Found
→ 资源不存在。405 Method Not Allowed
→ 请求方法不被允许。429 Too Many Requests
→ 请求频率过高,被限制。
✅ 5xx:服务器错误
500 Internal Server Error
→ 服务器内部错误。502 Bad Gateway
→ 网关或代理服务器错误。503 Service Unavailable
→ 服务不可用,通常由于超载或维护。504 Gateway Timeout
→ 网关超时,未能接收上游服务器响应。
🔥 3️⃣ 常见面试考点
✅ 状态码幂等性
2xx
和3xx
通常是幂等的。4xx
和5xx
通常不是幂等的。
✅ 缓存相关状态码
304 Not Modified
→ 表示资源未修改,可使用缓存。206 Partial Content
→ 表示返回部分内容,常用于分片下载。
✅ 区别 401
和 403
401 Unauthorized
→ 未登录或认证失败。403 Forbidden
→ 已认证,但权限不足。
✅ 区别 502
和 504
502 Bad Gateway
→ 网关或代理服务器收到无效响应。504 Gateway Timeout
→ 上游服务器超时未响应。
💡 4️⃣ 面试回答示例
HTTP 状态码用于表示服务器对客户端请求的处理结果,分为五类:
1xx
→ 信息性响应2xx
→ 成功3xx
→ 重定向4xx
→ 客户端错误5xx
→ 服务器错误
常见的状态码包括:200 OK
:请求成功404 Not Found
:资源不存在500 Internal Server Error
:服务器异常304 Not Modified
:资源未修改,可使用缓存401 Unauthorized
和403 Forbidden
:分别表示未认证和权限不足
在项目中,合理使用状态码有助于提高接口规范性和可维护性。