HTTP-4-5-系列状态码及-Nginx-状态码

12次阅读

共计 4362 个字符,预计需要花费 11 分钟才能阅读完成。

原文链接 何晓东 博客

http 400+

400 Bad Request
1、语义有误,以后申请无奈被服务器了解。除非进行批改,否则客户端不应该反复提交这个申请。
2、申请参数有误。

401 Unauthorized
以后申请须要用户验证。该响应必须蕴含一个实用于被申请资源的 WWW-Authenticate 信息头用以询问用户信息。客户端能够反复提交一个蕴含失当的 Authorization 头信息的申请。如果以后申请曾经蕴含了 Authorization 证书,那么 401 响应代表着服务器验证曾经回绝了那些证书。如果 401 响应蕴含了与前一个响应雷同的身份验证询问,且浏览器曾经至多尝试了一次验证,那么浏览器该当向用户展现响应中蕴含的实体信息,因为这个实体信息中可能蕴含了相干诊断信息。

402 Payment Required
此响应码保留以便未来应用,发明此响应码的最后目标是用于数字领取零碎,然而当初并未应用。

403 Forbidden
服务器曾经了解申请,然而拒绝执行它。与 401 响应不同的是,身份验证并不能提供任何帮忙,而且这个申请也不应该被反复提交。如果这不是一个 HEAD 申请,而且服务器心愿可能讲清楚为何申请不能被执行,那么就应该在实体内形容回绝的起因。当然服务器也能够返回一个 404 响应,如果它不心愿让客户端取得任何信息。

404 Not Found
申请失败,申请所心愿失去的资源未被在服务器上发现。没有信息可能通知用户这个情况到底是临时的还是永恒的。如果服务器晓得状况的话,该当应用 410 状态码来告知旧资源因为某些外部的配置机制问题,曾经永恒的不可用,而且没有任何能够跳转的地址。404 这个状态码被广泛应用于当服务器不想揭示到底为何申请被回绝或者没有其余适宜的响应可用的状况下。

405 Method Not Allowed
申请行中指定的申请办法不能被用于申请相应的资源。该响应必须返回一个 Allow 头信息用以示意出以后资源可能承受的申请办法的列表。鉴于 PUT,DELETE 办法会对服务器上的资源进行写操作,因此绝大部分的网页服务器都不反对或者在默认配置下不容许上述申请办法,对于此类申请均会返回 405 谬误。

406 Not Acceptable
申请的资源的内容个性无奈满足申请头中的条件,因此无奈生成响应实体。

407 Proxy Authentication Required
与 401 响应相似,只不过客户端必须在代理服务器上进行身份验证。代理服务器必须返回一个 Proxy-Authenticate 用以进行身份询问。客户端能够返回一个 Proxy-Authorization 信息头用以验证。

408 Request Timeout
申请超时。客户端没有在服务器准备期待的工夫内实现一个申请的发送。客户端能够随时再次提交这一申请而无需进行任何更改。

409 Conflict
因为和被申请的资源的以后状态之间存在抵触,申请无奈实现。这个代码只容许用在这样的状况下能力被应用:用户被认为可能解决抵触,并且会从新提交新的申请。该响应该当蕴含足够的信息以便用户发现抵触的源头。

410 Gone
被申请的资源在服务器上曾经不再可用,而且没有任何已知的转发地址。这样的情况该当被认为是永久性的。如果可能,领有链接编辑性能的客户端该当在取得用户许可后删除所有指向这个地址的援用。如果服务器不晓得或者无奈确定这个情况是否是永恒的,那么就应该应用 404 状态码。除非额定阐明,否则这个响应是可缓存的。

411 Length Required
服务器回绝在没有定义 Content-Length 头的状况下承受申请。在增加了表明申请音讯体长度的无效 Content-Length 头之后,客户端能够再次提交该申请。

412 Precondition Failed
服务器在验证在申请的头字段中给出先决条件时,没能满足其中的一个或多个。这个状态码容许客户端在获取资源时在申请的元信息(申请头字段数据)中设置先决条件,以此防止该申请办法被利用到其心愿的内容以外的资源上。

413 Payload Too Large
服务器回绝解决以后申请,因为该申请提交的实体数据大小超过了服务器违心或者可能解决的范畴。此种状况下,服务器能够敞开连贯免得客户端持续发送此申请。如果这个情况是长期的,服务器该当返回一个 Retry-After 的响应头,以告知客户端能够在多少工夫当前从新尝试。

414 URI Too Long
申请的 URI 长度超过了服务器可能解释的长度,因而服务器回绝对该申请提供服务。这比拟少见,通常的状况包含:本应应用 POST 办法的表单提交变成了 GET 办法,导致查问字符串(Query String)过长。

415 Unsupported Media Type
对于以后申请的办法和所申请的资源,申请中提交的实体并不是服务器中所反对的格局,因而申请被回绝。

416 Range Not Satisfiable
如果申请中蕴含了 Range 申请头,并且 Range 中指定的任何数据范畴都与以后资源的可用范畴不重合,同时申请中又没有定义 If-Range 申请头,那么服务器就该当返回 416 状态码。

417 Expectation Failed
此响应代码意味着服务器无奈满足 Expect 申请标头字段批示的期望值。

418 I’m a teapot
服务器回绝尝试用“茶壶冲泡咖啡”。(一个恶搞的超文本咖啡壶传输协定

421 Misdirected Request
该申请针对的是无奈产生响应的服务器。这能够由服务器发送,该服务器未配置为针对蕴含在申请 URI 中的计划和权限的组合产生响应。

422 Unprocessable Entity (WebDAV)
申请格局良好,但因为语义谬误而无奈遵循。

423 Locked (WebDAV)
正在拜访的资源被锁定。

424 Failed Dependency (WebDAV)
因为先前的申请失败,所以此次申请失败。

425 Too Early
服务器不违心冒着危险去解决可能重播的申请。

426 Upgrade Required
服务器回绝应用以后协定执行申请,但可能在客户机降级到其余协定后违心这样做。服务器在 426 响应中发送 Upgrade 头以批示所需的协定。

428 Precondition Required
原始服务器要求该申请是有条件的。旨在避免“失落更新”问题,即客户端获取资源状态,批改该状态并将其返回服务器,同时第三方批改服务器上的状态,从而导致抵触。

429 Too Many Requests
用户在给定的工夫内发送了太多申请(“限度申请速率”)。(对于短信验证码,邮件验证码,找回明码等操作常常用到)

431 Request Header Fields Too Large
服务器不违心解决申请,因为它的 申请头字段太大(Request Header Fields Too Large)。申请能够在减小申请头字段的大小后从新提交。

451 Unavailable For Legal Reasons
用户申请非法资源,例如:由政府审查的网页。(电商平台限度手机黑号常常用到)

http 500+

500 Internal Server Error
服务器遇到了不晓得如何解决的状况。

501 Not Implemented
此申请办法不被服务器反对且无奈被解决。只有 GET 和 HEAD 是要求服务器反对的,它们必然不会返回此错误代码。

502 Bad Gateway
此谬误响应表明服务器作为网关须要失去一个解决这个申请的响应,然而失去一个谬误的响应。

503 Service Unavailable
服务器没有筹备好解决申请。常见起因是服务器因保护或重载而停机。请留神,与此响应一起,应发送解释问题的用户敌对页面。这个响应应该用于长期条件和 Retry-After:如果可能的话,HTTP 头应该蕴含复原服务之前的预计工夫。网站管理员还必须留神与此响应一起发送的与缓存相干的标头,因为这些长期条件响应通常不应被缓存。

504 Gateway Timeout
当服务器作为网关,不能及时失去响应时返回此错误代码。

505 HTTP Version Not Supported
服务器不反对申请中所应用的 HTTP 协定版本。

506 Variant Also Negotiates
服务器有一个外部配置谬误:对申请的通明内容协商导致循环援用。

507 Insufficient Storage
服务器有外部配置谬误:所选的变体资源被配置为参加通明内容协商自身,因而不是协商过程中的适当端点。

508 Loop Detected (WebDAV)
服务器在解决申请时检测到有限循环。

510 Not Extended
客户端须要对申请进一步扩大,服务器能力实现它。服务器会回复客户端收回扩大申请所需的所有信息。

511 Network Authentication Required
511 状态码批示客户端须要进行身份验证能力取得网络拜访权限。

Nginx 定义的状态码

非官方状态码,只是 Nginx 本人定义不便调试的 -> 源码地位

ngx_string(ngx_http_error_494_page), /* 494, request header too large */
ngx_string(ngx_http_error_495_page), /* 495, https certificate error */
ngx_string(ngx_http_error_496_page), /* 496, https no certificate */
ngx_string(ngx_http_error_497_page), /* 497, http to https */
ngx_string(ngx_http_error_404_page), /* 498, canceled */
ngx_null_string,                     /* 499, client has closed connection */

494 申请头太大(Nginx)
Nginx 内置代码和 431 相似。

495 证书谬误(Nginx)
Nginx 内置的代码,当应用 SSL 客户端证书的时候谬误会呈现为了在日志谬误中辨别它和 4XX 和一个谬误页面的重定向。

496 没有证书(Nginx)
Nginx 内置的代码,当客户端不能提供证书在日志中分辨 4XX 和一个谬误页面的重定向。

497 HTTP 到 HTTPS(Nginx)
Nginx 内置的代码,被用于原始的 HTTP 的申请发送给 HTTPS 端口去分辨 4XX 在日志中和一个谬误页面的重定向。

498 勾销
暂不分明意义

499 客户端敞开申请(Nginx)
被用在 Nginx 日志去表明一个连贯曾经被客户端敞开当服务器依然正在解决它的申请,是的服务器无奈返回状态码。

499 状态码能够通过 curl 一个接口,而后设置 timeout = 1s,同时后端接口 sleep(2); 再返回,就能够复现这个状态码。

参考链接:

  1. IANA 状态码定义
  2. 维基百科 HTTP 状态码

顺带举荐一下 新用户特惠阿里云服务器

正文完
 0