HTTP状态码 201,202,302,405 ... 傻傻分不清,看这一个项目就够啦

HTTP状态码 201,202,302,405 ... 傻傻分不清,看这一个项目就够啦
Page content

本期搬运 【github】http.cat,它是一款用于提供对应HTTP状态码界面模板的API,并且每次都会返回一张寓意如图的🐱喵喵相片。

🍺本篇文章大约需要3分钟来阅读,热衷吸猫人士可能会更久。届时你将学到:

  • http状态码的作用分块
  • http状态码的大概含义

HTTP状态码五大分类

HTTP 响应状态代码指示特定 HTTP 请求是否已成功完成,其中响应分为五类。

  • 信息响应 1xx
  • 成功响应 2xx
  • 重定向 3xx
  • 客户端错误 4xx
  • 服务器错误 5xx

参考详见:

https://tools.ietf.org/html/rfc2616

https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

https://httpstatuses.com/

1xx 信息响应

请求已经收到将继续处理

100 Continue

这个临时响应表明,迄今为止的所有内容都是可行的,客户端应该继续请求,如果已经完成,则忽略它。

101 Switching Protocol

该代码是响应客户端的 Upgrade 标头发送的,表示服务器正在切换的协议。

2xx 成功响应

请求已成功接收,并被接受

200 OK

请求成功。成功的含义取决于HTTP方法:

  • GET:资源已被提取并在消息正文中传输。
  • HEAD:实体标头位于消息正文中。
  • POST:描述动作结果的资源在消息体中传输。
  • TRACE:消息正文包含服务器收到的请求消息

201 Created

该请求已成功,并因此创建了一个新的资源。通常源于POST或某些PUT请求。

202 Accepted

该请求已被接受进行处理,但是处理尚未完成。最终有可能会被处理也可能不会。

204 No Content

服务器成功处理了请求,但响应体中不会有任何内容。

206 Partial Content

服务器已经成功处理了部分 GET 请求。例如迅雷的断点续传或分段同时下载就是利用了该类响应。该请求必须包含 Range 头信息来指示客户端希望得到的内容范围,并且可能包含 If-Range 来作为请求条件。

207 Multi-Status

代表之后的消息体将是一个XML消息,很可能包含了后续的多段响应。

3xx 重定向

为了完成请求,需要采取进一步的措施

300 Multiple Choice

被请求的资源有一系列可供选择的回馈信息,每个都有自己特定的地址和浏览器驱动的商议信息。用户或浏览器能够自行选择一个首选的地址进行重定向。

301 Moved Permanently

永久性定向,被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。

302 Found

临时性重定向,请求的资源现在临时从不同的 URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。

303 See Other

服务器正在将用户代理重定向到其他资源,如通过Location标头,旨在提供对原始请求的间接响应。

304 Not Modified

客户端发送了一定的GET或HEAD请求,但需要获取的目标资源未改变。

305 Use Proxy

被请求的资源必须通过指定的代理才能被访问。Location 域中将给出指定的代理所在的 URI 信息,接收者需要重复发送一个单独的请求,通过这个代理才能访问相应资源。

307 Temporary Redirect

与302相似,但禁止自动重定向,除非获得用户的确认

4xx 客户端错误

该请求包含错误的语法或无法满足条件

400 Bad Request

  1. 语义有误,当前请求无法被服务器理解。
  2. 请求参数有误。

401 Unauthorized

当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。

402 Payment Required

此响应码保留以便将来使用,创造此响应码的最初目的是用于数字支付系统,然而现在并未使用

403 Forbidden

服务器理解了该请求,但拒绝对其进行授权。

404 Not Found

服务器未找到该资源,或不愿透露该资源的存在。

405 Method Not Allowed

请求行中指定的请求方法不能被用于请求相应的资源。该响应必须返回一个Allow 头信息用以表示出当前资源能够接受的请求方法的列表。

406 Not Acceptable

请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体。

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 Requested Range Not Satisfiable

如果请求中包含了 Range 请求头,并且 Range 中指定的任何数据范围都与当前资源的可用范围不重合,同时请求中又没有定义 If-Range 请求头,那么服务器就应当返回416状态码。

417 Expectation Failed

此响应代码意味着服务器无法满足 Expect 请求标头字段指示的期望值。

418 I’m a teapot

服务器拒绝冲泡咖啡,因为他是一盏茶壶。。。这是一个1998年的愚人节笑话。

420 Enhance Your Calm

twitter接口专用的限速代码

421 Misdirected Request

该请求针对的是无法产生响应的服务器。 且它可以由该服务器发送。

422 Unprocessable Entity (WebDAV)

请求格式良好,但由于语义错误而无法遵循。

423 Locked (WebDAV)

正在访问的资源被锁定。

424 Failed Dependency (WebDAV)

由于先前的请求失败,所以此次请求失败。

425 Too Early

服务器不愿意冒着风险去处理可能重播的请求。

426 Upgrade Required

服务器拒绝使用当前协议执行请求。

429 Too Many Requests

用户在给定的时间内发送了太多请求。

431 Request Header Fields Too Large

请求头字段太大导致服务器不愿意处理请求。

444 No Response

在内部使用指示服务器不向客户端返回任何信息并立即关闭连接。

450 Blocked by Windows Parental Controls

微软家长控制已打开,且成功阻止了访问该网页的请求。

用户请求了非法资源。

5xx 服务端错误

服务器无法处理有效的请求

500 Internal Server Error

服务器遇到了不知道如何处理的情况。

501 Not Implemented

此请求方法不被服务器支持且无法被处理。只有GET和HEAD是要求服务器支持的,它们必定不会返回此错误代码。

502 Bad Gateway

此错误响应表明服务器作为网关需要得到一个处理这个请求的响应,但是得到一个错误的响应。

503 Service Unavailable

服务器没有准备好处理请求,一般是服务器维护或重载而停机。

504 Gateway Timeout

当服务器作为网关,不能及时得到响应时返回此错误代码。

506 Variant Also Negotiates

服务器有一个内部配置错误:对请求的透明内容协商导致循环引用。

507 Insufficient Storage

服务器有内部配置错误:所选的变体资源被配置为参与透明内容协商本身,因此不是协商过程中的适当端点。

508 Loop Detected (WebDAV)

服务器在处理请求时检测到无限循环。

509 Bandwidth Limit Exceeded

服务器已超出服务器管理员指定的带宽;共享托管服务提供商通常使用它来限制客户的带宽。

510 Not Extended

客户端需要对请求进一步扩展,服务器才能实现它。服务器会回复客户端发出扩展请求所需的所有信息。

511 Network Authentication Required

511 状态码指示客户端需要进行身份验证才能获得网络访问权限。

599 Network Connect Timeout Error

此状态代码未在任何RFC中指定,但是某些HTTP代理使用此状态代码向代理之前的客户端发送信号,以指示代理后面的网络连接超时。

同类项目 https://httpstatusdogs.com/