📜  什么是 HTTP 状态码?

📅  最后修改于: 2022-05-13 01:56:36.562000             🧑  作者: Mango

什么是 HTTP 状态码?

从服务器页面到每个服务通信,从部署服务到监控服务,无处不在使用 HTTP 协议。 HTTP 代码扩展了 HTTP 协议使用 curl 调试网络问题,telnet 能够检查服务器可用性,服务响应

HTTP 状态代码用于搜索引擎优化您的页面如何被索引,以及搜索引擎如何感知您网站的健康状况。

为什么我们需要很多 HTTP 状态?

它降低了客户端和服务器错误的复杂性。这也是微服务和 HATEOAS 易于定义的原因之一。

服务器响应的第一行表示 HTTP 版本和一个三位数的状态码。服务器保留一些默认错误消息(404 未找到或 500 内部服务器错误)。每个服务器(Tomcat、Redhat、Web 服务器)都为内置功能保留一些 HTTP 状态。也可以手动配置状态码。

状态码分组如下:

  • 信息响应 (100–199)
  • 成功响应 (200–299)
  • 重定向消息 (300–399)
  • 客户端错误响应 (400–499)
  • 服务器错误响应 (500–599)

1. 信息响应:

  • 100 个准备好让客户端继续请求
  • 101 ,它将切换到另一个协议。

2.成功响应:

  • 200 OK交易成功
  • 201 Created用于在数据库中创建条目或更新详细信息
  • 202 Accepted可能会接受请求,但未决定是否创建条目
  • 203 Non-Authoritative Information用户提供的信息不是请求的原始所有者
  • 204 No Content Response come without no entity-body
  • 205 重置内容浏览器应清除用于此事务的表单以获取其他输入
  • 206 Partial Content服务器正在返回请求大小的部分数据

3. 重定向:文档已经移动,服务器可能被配置为告诉客户端它被移动到了哪里

  • 300 Multiple Choices请求的 URL 引用了多个资源。
  • 301 Moved Permanently服务器不再使用请求的 URL。所请求文档的新位置在 Location 标头中指定。以后对文档的所有请求都应使用新 URL。
  • 302 Found the redirected URL is found current working URL location
  • 303 See Other请求的 URL 可以在不同的 URL(在 Location 标头中指定)找到,并且应该通过该资源上的 GET 检索。
  • 304 Not Modified自指定日期以来,URL 未被修改。不发送实体主体,客户端应使用自己的本地副本。
  • 305 Use Proxy请求的 URL 必须通过 Location 标头中的代理访问。
  • 307 Temporary Redirect请求的 URL 已移动,但只是暂时的。

4. 客户请求不完整:

  • 400 Bad Request此响应代码表示服务器在客户端请求中检测到语法错误。
  • 401 Unauthorized服务失败,因为没有提供正确的参数,如用户名、密码
  • 402 Payment Required此代码尚未在 HTTP 中实现。
  • 403 Forbidden由于服务器不想(或无法)向客户端指示的原因,请求被拒绝。
  • 404 Not Found指定 URL 的文档不存在。
  • 405 Method Not Allowed此代码与 Allow 标头一起提供,表示此 URL 不支持客户端使用的方法。
  • 406 Not Acceptable客户端指定的 URL 存在,但不是客户端首选的格式。除此代码外,服务器还提供 Content-Language、Content-Encoding 和 Content-type 标头。
  • 407 Proxy Authentication Required代理服务器在转发请求前需要对请求进行授权。与 Proxy-Authenticate 标头一起使用。
  • 408 Request Time-out此响应码表示客户端在某个预定时间内(通常在服务器的配置中指定)内没有产生完整的请求,并且服务器正在断开网络连接。
  • 409 Conflict此代码表示该请求与另一个请求或与服务器的配置冲突。有关冲突的信息应在回复的数据部分中返回。例如,当客户端的请求会导致数据库中的完整性问题时,可以给出此响应代码。
  • 410 Gone此代码表示请求的 URL 不再存在,并且已从服务器中永久删除。
  • 411 Length Required如果请求中没有提供 Content-length 标头,服务器将不接受请求。
  • 412 Precondition Failed请求中一个或多个 If... 标头指定的条件评估为 false。
  • 413 Request Entity Too Large服务器不会处理请求,因为它的实体体太大。
  • 414 Request URL Too Long服务器将不会处理请求,因为它的请求 URL 太大。
  • 415 Unsupported Media Type服务器不会处理请求,因为它的实体主体格式不受支持。
  • 416 Request Range Not Satisfiable请求的字节范围不可用且超出范围。
  • 417 Expectation Failed服务器无法满足客户端给出的Expect header的要求。

5. 500 Internal Server Error:此代码表示服务器的一部分遇到了配置错误。

  • 501 Not Implemented此代码表示客户端请求的操作无法由服务器执行。
  • 502 Bad Gateway此代码表示服务器(或代理)遇到来自另一台服务器(或代理)的无效响应。
  • 503 Service Unavailable该代码表示该服务暂时不可用,但以后应该恢复。
  • 504 Gateway Time-out此响应类似于 408(请求超时),只是网关或代理已超时。
  • 505 不支持 HTTP 版本

互联网工程任务组 (IETF) 发布标准代码的使用信息。