HTTP 那些常用的状态码

HTTP 状态码是表示响应状态的 3 个数字,可分为 5 类 (信息、成功、重定向、客户端错误和服务器错误), 其中 14 种状态码较为常用。

1xx (信息),表示请求已接受,需要继续处理。这类响应是信息性的,提醒客户端应该采取其它行动。
2xx (成功),表示请求成功接受并处理完毕。
  • 200 Ok: 服务器已成功处理请求。
  • 204 No Content (没内容): 服务器成功处理请求, 但没有资源可返回。
  • 206 Partial Content (部分内容): 客户端进行范围请求成功。响应报文中由 Content-Range 指定范围的实体内容。
3xx (重定向),表示客户端需要进一步操作才能完成请求,后续的请求地址(重定向的目标)会在响应的 Location 域中。
  • 301 Moved Permanently (永久搬离),资源已永久搬离。除非是 HEAD 请求, 否则响应中应该包含 Location URL及简短说明, 以说明请求资源现在所处的位置。

    注意:对于某些使用HTTP/1.0协议的浏览器,当它们发送的POST请求得到了一个301响应的话,接下来的重定向请求将会变成GET方式。

  • 302 Found (已找到),要求客户端使用新的 URL 访问。这不同 301 状态码的地方在于这是临时性的。

    注意:虽然 RFC 1945 和 RFC 2068 不允许客户端重定向时改变请求的方法, 但由于很多浏览器将 302 响应视为 303 响应, 并且使用 GET 方法访问 Location URL, 而无视原先请求的方法。

  • 303 See Other (参见其它),客户端应该通过 GET 方法访问另一个 URL 以获取资源。这与 302 状态码有相同功能, 但和 302 不同的时这明确表示客户端要用 GET 方法获取资源。

    注意: 许多 HTTP/1.1 版以前的浏览器不能正确理解 303 状态。如果需要考虑与这些浏览器之间的互动, 302 状态码应该可以胜任, 因为大多数的浏览器处理 302 响应时的方式恰恰就是上述规范要求客户端处理303响应时应当做的。

  • 304 Not Modified (未修改): 资源未发生过变化。资源在请求头中的 If-Modified-Since 或 If-None-Match 参数指定过一版本后未曾被修改, 那么由于客户端仍具有副本就不需要重新传输资源。

  • 307 Temporary Redirect (临时重定向), 请求与另一个 URL 重复, 但后续请求仍使用原始 URL。与 302 相反,当重新发送原始请求时,不允许更改请求方法,如应该使用另一个 POST 请求来重复 POST 请求。

4xx (客户端错误),表示客户端出现了问题。
  • 400 Bad request (坏请求): 客户端发送了异常请求。
  • 401 Unauthorized (未授权): 客户端需要身份认证 (BASIC 认证、DIGEST 认证)才能获取资源。该响应需包含适用于被请求资源的 WWW-Authenticate 信息头用以质询 (challenge) 用户信息。浏览器初次接受到 401 会弹出认证用的对话窗口。
  • 403 Forbidden (禁止): 服务器拒绝了请求。
  • 404 Not found (未找到): 服务器无法找到该资源。也可用于服务器拒绝请求且不想说明理由或者没有其他适合的响应可用的情况下。
5xx (服务器错误),表示服务器出现了问题无法处理请求。
  • 500 Internal Server Error (内部服务器错误):服务器执行请求时发生错误,也有可能是 Web 应用存在 bug 或某些临时的故障。
  • 503 Service Unavailable (未提供此服务):服务器处于超负载或停机维护暂无法处理请求。如果知道修复时间,最好能通过 Retry-After 首部字段告知客户端。
参考资料
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值