HTTP 状态码详解:用途与含义

[复制链接]
发表于 2025-5-3 11:43:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
HTTP 状态码详解:用途与含义

HTTP 状态码是服务器对客户端哀求的响应标识,用于快速判断哀求的乐成、失败或必要进一步操纵。


  • 2xx:乐成,重点关注 200、201、204。
  • 3xx:重定向,区分 301(永世)和 302(临时)。
  • 4xx:客户端错误,400(语法)、401(未登录)、403(无权限)。
  • 5xx服务器错误,500(通用)、502(网关题目)、503(过载)。
以下是 2xx、3xx、4xx、5xx 状态码的详细阐明,包罗适用场景和典型用例。
1. (2xx)乐成类

表示哀求已被服务器乐成接收、明白并处理。
200 OK



  • 用途:尺度乐成响应,表示哀求已乐成完成。
  • 典型场景

    • GET 哀求乐成获取资源(如查询用户信息)。
    • PUT 或 PATCH 哀求乐成更新资源。

  • 示例
    1. HTTP/1.1 200 OK
    2. Content-Type: application/json
    3. {"id": 1, "name": "John Doe"}
    复制代码
201 Created



  • 用途:资源创建乐成,通常用于 POST 哀求。
  • 要求:响应应包罗新资源的 URI(Location 头)。
  • 典型场景

    • 用户注册乐成,返回新用户 ID。
    • 创建订单后返回订单详情。

  • 示例
    1. HTTP/1.1 201 Created
    2. Location: /api/users/123
    3. Content-Type: application/json
    4. {"id": 123, "status": "active"}
    复制代码
204 No Content



  • 用途:哀求乐成,但无返回内容。
  • 典型场景

    • DELETE 哀求乐成删除资源。
    • PUT/PATCH 更新乐成但无需返回数据。

  • 示例
    1. HTTP/1.1 204 No Content
    复制代码
206 Partial Content



  • 用途:服务器返回部分内容,适用于分块下载或断点续传。
  • 典型场景

    • 视频流的分段加载。
    • 大文件下载时支持 Range 哀求。

  • 示例
    1. HTTP/1.1 206 Partial Content
    2. Content-Range: bytes 0-999/5000
    3. Content-Length: 1000
    4. [Binary Data...]
    复制代码

2. (3xx)重定向类

表示客户端需进一步操纵才能完成哀求(如跳转新 URL)。
301 Moved Permanently



  • 用途:资源已永世迁徙到新 URL,客户端应更新书签。
  • SEO 影响:搜索引擎会更新索引。
  • 示例
    1. HTTP/1.1 301 Moved Permanently
    2. Location: https://new.example.com/resource
    复制代码
302 Found(临时重定向)



  • 用途:资源临时移至新 URL,后续哀求仍用原地址。
  • 典型场景

    • 短链接跳转。
    • 登录后临时重定向到首页。

  • 示例
    1. HTTP/1.1 302 Found
    2. Location: /temp-redirect
    复制代码
304 Not Modified



  • 用途:资源未修改,客户端可继续使用缓存。
  • 触发条件:哀求头包罗 If-Modified-Since 或 If-None-Match。
  • 示例
    1. HTTP/1.1 304 Not Modified
    复制代码
308 Permanent Redirect



  • 用途:类似 301,但强制保持原 HTTP 方法(如 POST 不会变成 GET)。
  • 典型场景

    • API 迁徙时确保哀求方法不变。

  • 示例
    1. HTTP/1.1 308 Permanent Redirect
    2. Location: https://new-api.example.com
    复制代码

3. (4xx)客户端错误

表示客户端哀求有误,需修正后重试。
400 Bad Request



  • 用途:哀求语法错误,服务器无法解析。
  • 典型场景

    • JSON 格式错误。
    • 缺少必填参数。

  • 示例
    1. HTTP/1.1 400 Bad Request
    2. {"error": "Invalid JSON format"}
    复制代码
401 Unauthorized



  • 用途:未提供有效身份凭证(需登录)。
  • 要求:响应头应包罗 WWW-Authenticate。
  • 示例
    1. HTTP/1.1 401 Unauthorized
    2. WWW-Authenticate: Bearer realm="API"
    复制代码
403 Forbidden



  • 用途:身份已验证,但无权访问(与 401 区别)。
  • 典型场景

    • 普通用户尝试访问管理员接口。
    • IP 被拉黑。

  • 示例
    1. HTTP/1.1 403 Forbidden
    2. {"error": "Insufficient permissions"}
    复制代码
404 Not Found



  • 用途:哀求的资源不存在。
  • 典型场景

    • 访问的 URL 无效。
    • 数据库查询无效果。

  • 示例
    1. HTTP/1.1 404 Not Found
    2. {"error": "User not found"}
    复制代码
429 Too Many Requests



  • 用途:客户端哀求频率过高(触发速率限定)。
  • 典型场景

    • API 调用超出配额。
    • 防止暴力破解。

  • 示例
    1. HTTP/1.1 429 Too Many Requests
    2. Retry-After: 60  # 60秒后重试
    复制代码

4. (5xx)服务器错误

表示服务器处理哀求时发生错误,需后端修复。
500 Internal Server Error



  • 用途:通用服务器错误,无具体信息。
  • 典型场景

    • 代码异常(如未捕捉的 NullPointerException)。

  • 示例
    1. HTTP/1.1 500 Internal Server Error
    2. {"error": "Server encountered an error"}
    复制代码
502 Bad Gateway



  • 用途:网关/代理服务器收到上游无效响应。
  • 典型场景

    • Nginx 连接的后端服务崩溃。

  • 示例
    1. HTTP/1.1 502 Bad Gateway
    复制代码
503 Service Unavailable



  • 用途:服务器暂时不可用(过载或维护)。
  • 建议:共同 Retry-After 头。
  • 示例
    1. HTTP/1.1 503 Service Unavailable
    2. Retry-After: 3600  # 1小时后重试
    复制代码
504 Gateway Timeout



  • 用途:网关等待上游服务器响应超时。
  • 典型场景

    • 数据库查询超时。
    • 第三方 API 响应迟钝。

  • 示例
    1. HTTP/1.1 504 Gateway Timeout
    复制代码

关键要点与场景建议


  • 缓存优化:合理利用 304 可明显减少重复传输。
  • 权限控制:401 需共同 WWW-Authenticate 头,403 直接拒绝。
  • 重定向选择

    • 永世迁徙用 301 或 308(SEO 友爱);
    • 临时调解用 302 或 307(保留原方法)。

  • 错误排查

    • 502/504 多与代理或上游服务相干;
    • 503 需检查服务器负载或维护状态。

HTTP 状态码是前后端交互的“语言”,精准明白其含义能快速定位题目。例如:


  • 遇到 429 需优化哀求频率或协商限流计谋;
  • 204 适用于无需返回数据的操纵(如日志日志记录)。
    建议结合具体业务场景选择最匹配的状态码,提拔 API 筹划的规范性。
HTTP 方法与状态码的尺度组合

1. GET(检索资源)



  • 200 OK:乐成返回资源(如获取用户信息)。
  • 404 Not Found:资源不存在。
  • 304 Not Modified:缓存有效(共同 If-Modified-Since 或 ETag)。
2. POST(创建资源)



  • 201 Created:资源创建乐成,需在响应体中包罗新资源的 URI(Location 头)。
    1. HTTP/1.1 201 Created
    2. Location: /api/users/123
    复制代码
  • 202 Accepted:哀求已接受但未完成(适用于异步任务)。
  • 400 Bad Request:哀求数据无效(如字段缺失或格式错误)。
3. PUT(全量更新资源)



  • 200 OK204 No Content:更新乐成(后者无返回体时使用)。
  • 404 Not Found:资源不存在(若要求资源必须存在)。
  • 409 Conflict:资源状态辩说(如版本号不匹配)。
4. PATCH(部分更新资源)



  • 200 OK:返回更新后的完备资源。
  • 204 No Content:仅更新无返回。
  • 422 Unprocessable Entity:语义错误(如字段验证失败)。
5. DELETE(删除资源)



  • 204 No Content:删除乐成(无返回体)。
  • 404 Not Found:资源不存在(若幂等性要求)。
6. HEAD(获取元数据)



  • 200 OK:与 GET 相同,但无响应体。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5

GMT+8, 2025-7-9 04:50 , Processed in 0.231550 second(s), 33 queries 手机版|qidao123.com技术社区-IT企服评测▪应用市场 ( 浙ICP备20004199 )|网站地图

快速回复 返回顶部 返回列表