Skip to content
字数
1188 字
阅读时间
5 分钟

#计网

HTTP 状态码是服务器对客户端请求的响应,用于表示请求处理的结果。它们被分为五大类。

1xx - 信息性响应

表示请求已被接收,继续处理。

2xx - 成功响应

表示请求已成功被服务器接收、理解、并接受。

200 OK

  • 含义:请求已成功,响应报文中包含了请求的资源。这是最常见的成功状态码。

204 No Content

  • 含义:服务器成功处理了请求,但没有返回任何内容。响应报文中只有头部,没有报文主体。
  • 使用场景:常用于 PUTDELETE 请求成功后,或客户端发送一个“心跳”请求,服务器确认存活但无需返回数据。

3xx - 重定向

表示需要客户端采取进一步的操作才能完成请求。

301 Moved Permanently

  • 含义:请求的资源已被永久移动到新的 URI。
  • 浏览器行为:浏览器会自动重定向到新地址,并且搜索引擎会更新其索引。未来的请求应该直接使用新的 URI。

302 Found

  • 含义:请求的资源被临时移动到新的 URI。
  • 浏览器行为:浏览器会自动重定向到新地址,但搜索引擎不会更新其索引。未来的请求应该继续使用原始 URI。
  • 使用场景
    • 用户未登录时访问个人中心,临时重定向到登录页。
    • 活动期间,访问首页临时重定向到活动页。

304 Not Modified

  • 含义:资源未被修改,客户端可以直接使用本地缓存的版本。
  • 触发条件:这是一个与浏览器缓存相关的状态码。当客户端发起一个条件请求(如带有 If-None-MatchIf-Modified-Since 头部)时,如果服务器发现资源没有变化,就会返回 304
  • 效果:响应报文中不包含主体内容,只包含头部,从而节省带宽,提高性能。

4xx - 客户端错误

表示客户端的请求有误,服务器无法处理。

400 Bad Request

  • 含义:服务器无法理解客户端的请求,通常是因为请求报文存在语法错误。
  • 常见原因:请求参数格式错误、请求体过大、头部字段无效等。

4.3 Forbidden

  • 含义:服务器理解请求,但拒绝执行。客户端没有访问该资源的权限。
  • 常见原因:身份认证失败、IP 地址被禁止、权限不足等。

404 Not Found

  • 含义:服务器上找不到请求的资源。
  • 常见原因:URL 输入错误,或资源已被删除。

405 Method Not Allowed

  • 含义:服务器禁止使用客户端请求中指定的方法(如对只读资源使用 POST)。
  • 注意:响应中必须包含一个 Allow 头部,指明该资源允许的方法(如 Allow: GET, HEAD)。客户端可以通过 OPTIONS 方法预检来查询服务器允许的方法。

5xx - 服务器错误

表示服务器在处理请求的过程中发生了错误。

500 Internal Server Error

  • 含义:服务器内部遇到了一个未知的、无法处理的错误。这是一个通用的服务器端错误状态码。
  • 常见原因:后端代码出现 Bug、数据库连接失败、服务器资源耗尽等。

502 Bad Gateway

  • 含义:作为网关或代理的服务器,从上游服务器收到了一个无效的响应。
  • 常见原因:后端服务挂了、网关配置错误、上游服务器过载。

503 Service Unavailable

  • 含义:服务器当前无法处理请求,通常是由于过载或正在进行停机维护。这是一个临时状态。

504 Gateway Timeout

  • 含义:作为网关或代理的服务器,未能及时从上游服务器获得响应。
  • 常见原因:后端代码执行超时(如一个非常耗时的查询)、上游服务器响应慢。

贡献者

The avatar of contributor named as jiechen jiechen

页面历史

撰写