整理归纳HTTP 状态码的完整列表 ?
参考回答
HTTP 状态码是服务器响应客户端请求时返回的状态信息,通常分为五个类别,每个类别代表不同类型的响应。以下是常见的 HTTP 状态码分类及其含义:
1xx: 信息性状态码
- 100 Continue:请求已接收,继续处理。
- 101 Switching Protocols:服务器切换协议。
- 102 Processing:处理请求中,但还未完成(WebDAV)。
2xx: 成功状态码
- 200 OK:请求成功,响应数据随请求返回。
- 201 Created:请求成功并且服务器创建了新的资源。
- 202 Accepted:请求已接受,但尚未处理完成。
- 204 No Content:请求成功,但无返回数据。
- 205 Reset Content:请求成功,但需要客户端重置内容。
- 206 Partial Content:部分内容返回。
3xx: 重定向状态码
- 300 Multiple Choices:多种选择,客户端可以选择一种继续。
- 301 Moved Permanently:资源已被永久移动到新位置。
- 302 Found:资源临时被移动。
- 303 See Other:通过其他 URI 查看资源。
- 304 Not Modified:资源未修改,客户端可以使用缓存。
- 305 Use Proxy:必须使用代理访问资源。
- 307 Temporary Redirect:临时重定向,客户端应继续使用原始请求方法。
- 308 Permanent Redirect:永久重定向,客户端应使用新的 URL。
4xx: 客户端错误状态码
- 400 Bad Request:请求无效,服务器无法理解。
- 401 Unauthorized:未经授权,客户端需要提供认证信息。
- 402 Payment Required:未来可能使用的状态码,表示需要支付。
- 403 Forbidden:禁止访问,服务器理解请求但拒绝执行。
- 404 Not Found:资源未找到,服务器无法找到请求的页面。
- 405 Method Not Allowed:请求方法不允许,HTTP 方法不被支持。
- 406 Not Acceptable:服务器无法根据客户端的请求格式提供响应。
- 407 Proxy Authentication Required:需要代理认证。
- 408 Request Timeout:请求超时,服务器未在指定时间内收到请求。
- 409 Conflict:请求冲突,通常与资源的当前状态相关。
- 410 Gone:资源已被永久删除。
- 411 Length Required:请求头缺少 Content-Length 字段。
- 412 Precondition Failed:请求头的某些前提条件失败。
- 413 Payload Too Large:请求体过大。
- 414 URI Too Long:请求的 URI 太长。
- 415 Unsupported Media Type:不支持的媒体类型。
- 416 Range Not Satisfiable:请求的范围不可满足。
- 417 Expectation Failed:服务器无法满足 Expect 请求头字段的要求。
- 426 Upgrade Required:需要升级协议。
5xx: 服务器错误状态码
- 500 Internal Server Error:服务器内部错误。
- 501 Not Implemented:服务器不支持请求的功能。
- 502 Bad Gateway:作为网关的服务器收到无效响应。
- 503 Service Unavailable:服务器当前无法处理请求,通常是由于临时超载或维护。
- 504 Gateway Timeout:作为网关的服务器未能及时从上游服务器获得响应。
- 505 HTTP Version Not Supported:服务器不支持 HTTP 协议的版本。
- 507 Insufficient Storage:服务器无法存储完成请求所需的表示。
- 510 Not Extended:请求未满足服务器的扩展要求。
详细讲解与拓展
HTTP 状态码作为 web 开发和运维中常见的概念,不仅用于通知客户端请求的处理结果,还能够帮助开发者在调试或故障排查时定位问题。我们可以通过具体的场景来进一步理解这些状态码。
1xx:信息性状态码
信息性状态码通常表示请求已接收,服务器正在继续处理。例如:
– 100 Continue:在客户端发送大量数据时,客户端可能会分批发送请求体。服务器返回 100 状态码,告知客户端可以继续发送剩余数据。
2xx:成功状态码
这些状态码表示请求已被成功处理。例如:
– 200 OK 是最常见的状态码,表示一切正常。
– 201 Created 常用于表示客户端发送的数据成功地创建了一个资源,典型的例子是在创建一个新的记录时(例如,提交一个表单创建用户)。
3xx:重定向状态码
这类状态码表示客户端需要采取进一步的操作才能完成请求。例如:
– 301 Moved Permanently:当一个网站的页面 URL 更改时,301 重定向会告知浏览器将来都应访问新地址。
– 304 Not Modified:如果客户端之前请求过资源,并且该资源没有被修改过,服务器会返回 304 状态码,告诉客户端使用缓存内容。
4xx:客户端错误状态码
客户端错误通常表示请求有问题,需要修正。例如:
– 400 Bad Request:如果客户端请求格式错误,服务器会返回此状态码。
– 401 Unauthorized:当客户端未提供有效的认证信息时,服务器会返回此状态码。例如,登录请求失败时可能会返回 401。
– 404 Not Found:最常见的错误状态码,通常意味着请求的页面不存在。
5xx:服务器错误状态码
这些状态码表示服务器端发生错误,无法完成请求。例如:
– 500 Internal Server Error:这是服务器端通用错误,当没有更具体的错误信息时,服务器会返回此状态码。
– 502 Bad Gateway:当服务器作为网关或代理时,它收到来自上游服务器的无效响应时会返回此状态码。
– 503 Service Unavailable:常见于服务器超载或正在维护时。
总结
HTTP 状态码是 Web 开发中不可或缺的一部分,了解它们能够帮助开发人员更好地理解请求和响应的流程,并进行故障排查和优化。在实际开发过程中,根据状态码提供的反馈,客户端和服务器都可以做出相应的调整和优化。