HTTP响应状态码

  • 400 Bad Request
  • 401 Unauthorized
  • 403 Forbidden
  • 404 Not Found
  • 410 Gone
  • 405 Method Not Allowed
  • 406 Not Acceptable
  • 407 Proxy Authentication Required
  • 408 Request Timeout
  • 409 Conflict
  • 411 Length Required
  • 412 Precondition Failed
  • 428 Precondition Required
  • 413 Payload Too Large
  • 414 URI Too Long
  • 415 Unsupported Media Type
  • 416 Range Not Satisfiable
  • 417 Expectation Failed
  • 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
  • 451 Unavailable For Legal Reasons(因法律原因不可用)

400 Bad Request

  • 语义有误(语法无效),当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。
  • 请求参数有误。

401 Unauthorized

缺乏目标资源要求的身份验证凭证,发送的请求未得到满足。

这个状态码会与 WWW-Authenticate 首部一起发送,其中包含有如何进行验证的信息。

客户端可以重复提交一个包含恰当的 Authorization 头信息的请求。

如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了那些证书。这个状态类似于 403, 但是在401下,依然可以进行身份验证。

响应示例:

HTTP/1.1 401 Unauthorized
Date: Wed, 21 Oct 2015 07:28:00 GMT
WWW-Authenticate: Basic realm="Access to staging site"

403 Forbidden

服务器已经理解请求,但是拒绝授权访问。

这个状态类似于 401,但进入该状态后不能再继续进行验证。该访问是长期禁止的,并且与应用逻辑密切相关(例如不正确的密码)。

如果这不是一个 HEAD 请求,而且服务器希望能够讲清楚为何请求不能被执行,那么就应该在实体内返回拒绝的原因。

如果它不希望让客户端获得任何信息,服务器可以返回一个 404 响应。

404 Not Found

服务器端无法找到所请求的资源。
返回该响应的链接通常称为坏链(broken link)死链(dead link),它们会导向链接出错处理(link rot)页面。

404 状态码并不能说明请求的资源是临时还是永久丢失。
404这个状态码被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。

如果服务器知道该资源是永久丢失,那么应该返回 410 (Gone),来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。

410 Gone

被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址。

这样的状况应当被认为是永久性的。

如果可能,拥有链接编辑功能的客户端应当在获得用户许可后删除所有指向这个地址的引用。如果服务器不知道或者无法确定这个状况是否是永久的,那么就应该使用 404 状态码。

除非额外说明,否则这个响应是可缓存的。

405 Method Not Allowed

表明服务器禁止了使用当前 HTTP 方法的请求。需要注意的是,GET 与 HEAD 两个方法不得被禁止,当然也不得返回状态码 405。

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

鉴于 PUTDELETE 方法会对服务器上的资源进行写操作,因而绝大部分的网页服务器都不支持或者在默认配置下不允许上述请求方法,对于此类请求均会返回405错误。

406 Not Acceptable

指代服务器端无法提供与 Accept-Charset 以及 Accept-Language 消息头指定的值相匹配的响应。

如果服务器返回了这个错误状态码,那么消息体中应该包含所能提供的资源表现形式的列表,允许用户手动进行选择。

在实际应用中,这个错误状态码极少使用:不是给用户返回一个晦涩难懂(且难以更正)的错误状态码,而是将相关的消息头忽略,同时给用户提供一个看得见摸得着的页面。

407 Proxy Authentication Required

与401响应类似,只不过客户端必须在代理服务器上进行身份验证。

指的是由于缺乏位于浏览器与可以访问所请求资源的服务器之间的代理服务器(proxy server )要求的身份验证凭证,发送的请求尚未得到满足。

代理服务器必须返回一个 Proxy-Authenticate 用以进行身份询问。客户端可以返回一个 Proxy-Authorization 信息头用以验证。

响应示例:

HTTP/1.1 407 Proxy Authentication Required
Date: Wed, 21 Oct 2015 07:28:00 GMT
Proxy-Authenticate: Basic realm="Access to internal site"

408 Request Timeout

请求超时。客户端没有在服务器预备等待的时间内完成一个请求的发送。客户端可以随时再次提交这一请求而无需进行任何更改。

表示服务器想要将没有在使用的连接关闭。一些服务器会在空闲连接上发送此信息,即便是在客户端没有发送任何请求的情况下。

服务器应该在此类响应中将 Connection 首部的值设置为 “close”,因为 408 意味着服务器已经决定将连接关闭,而不是继续等待。

这类响应出现的比较频繁,源于一些浏览器——例如 Chrome, Firefox 27+, 或者 IE9 等——使用 HTTP 协议中的预连接机制来加速上网体验。同时应该注意到,某些服务器会直接关闭连接,而不发送此类消息。

409 Conflict

表示请求与服务器端目标资源的当前状态相冲突。

冲突最有可能发生在对 PUT 请求的响应中。例如,当上传文件的版本比服务器上已存在的要旧,从而导致版本冲突的时候,那么就有可能收到状态码为 409 的响应。

该响应应当包含足够的信息以便用户发现冲突的源头。

这个代码只允许用在这样的情况下使用:用户被认为能够解决冲突,并且会重新提交新的请求。

411 Length Required

表示由于缺少确定的Content-Length 首部字段,服务器拒绝客户端的请求。

在添加了表明请求消息体长度的有效 Content-Length 头之后,客户端可以再次提交该请求。

412 Precondition Failed

对于目标资源的访问请求被拒绝。
这通常发生于采用除 GET 和 HEAD 之外的方法进行条件请求时,由首部字段 If-Unmodified-SinceIf-None-Match 规定的先决条件不成立的情况下。这时候,请求的操作——通常是上传或修改文件——无法执行,从而返回该错误状态码

428 Precondition Required

原始服务器要求该请求是有条件的。 旨在防止“丢失更新”问题,即客户端获取资源状态,修改该状态并将其返回服务器,同时第三方修改服务器上的状态,从而导致冲突。

一般的,这种情况意味着必要的条件首部:如 If-Match的缺失。.

当一个条件首部的值不能匹配服务器端的状态的时候,应答的状态码应该是 412 Precondition Failed,前置条件验证失败。

413 Payload Too Large

表示请求主体的大小超过了服务器愿意或有能力处理的限度,服务器可能会(may)关闭连接以防止客户端继续发送该请求。

如果“超出限度”是暂时性的,服务器应该返回 Retry-After 首部字段,说明这是暂时性的,以及客户端可以在什么时间(after what time)后重试。

414 URI Too Long

表示客户端所请求的 URI 长度超过了服务器允许的范围,因此服务器拒绝对该请求提供服务。

以下是造成这种罕见情况的几种可能原因:

  • 本应使用POST方法的表单提交变成了GET方法,导致查询字符串(Query String)过长。
  • 当客户端堕入重定向循环黑洞时,例如,指向自身后缀的重定向URI前缀(a redirected URI prefix that points to a suffix of itself);
  • 当客户端对服务器进行攻击,试图寻找潜在的漏洞时。

415 Unsupported Media Type

对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝。

格式问题的出现有可能源于客户端在 Content-TypeContent-Encoding 首部中指定的格式,也可能源于直接对负载数据进行检测的结果。

416 Range Not Satisfiable

意味着服务器无法处理所请求的数据区间。

最常见的情况是所请求的数据区间不在文件范围之内,也就是说,Range 首部的值,虽然从语法上来说是没问题的,但是从语义上来说却没有意义。

416 响应报文包含一个 Content-Range 首部,提示无法满足的数据区间(用星号 * 表示),后面紧跟着一个“/”,再后面是当前资源的长度。例如:Content-Range: */12777

遇到这一错误状态码时,浏览器一般有两种策略:要么终止操作(例如,一项中断的下载操作被认为是不可恢复的),要么再次请求整个文件。

417 Expectation Failed

意味着服务器无法满足 Expect 请求消息头中的期望条件。

421 Misdirected Request

该服务器未配置为针对包含在请求 URI 中的方案和权限的组合产生响应。该请求针对的是无法产生响应的服务器。

422 Unprocessable Entity (WebDAV)

表示服务器理解请求实体的内容类型,并且请求实体的语法是正确的,但是服务器无法处理所包含的指令。

重要提示:客户端不应在不修改的情况下重复发送此请求。

423 Locked (WebDAV)

正在访问的资源被锁定。

424 Failed Dependency (WebDAV)

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

425 Too Early

代表服务器不愿意冒风险来处理该请求,原因是处理该请求可能会被“重放”,从而造成潜在的重放攻击。

426 Upgrade Required

表示服务器拒绝处理客户端使用当前协议发送的请求,但是可以接受其使用升级后的协议发送的请求。

服务器会在426 响应中使用 Upgrade 首部来指定要求的协议。

429 Too Many Requests

表示在一定的时间内用户发送了太多的请求,即超出了“频次限制”。

在响应中,可以提供一个 Retry-After 首部来提示用户需要等待多长时间之后再发送新的请求。

响应示例:

HTTP/1.1 429 Too Many Requests
Content-Type: text/html
Retry-After: 3600

431 Request Header Fields Too Large

表示由于请求中的首部字段的值过大,服务器拒绝接受客户端的请求。客户端可以在缩减首部字段的体积后再次发送请求。

该响应码可以用于首部总体体积过大的情况,也可以用于单个首部体积过大的情况。

这种错误一般不会出现于经过良好测试的投入使用的系统当中,而是更多出现于测试新系统的时候。

451 Unavailable For Legal Reasons(因法律原因不可用)

表示服务器由于法律原因,无法提供客户端请求的资源,例如可能会导致法律诉讼的页面。

  • HTTP响应状态代码----信息响应(100–199)
  • HTTP响应状态代码----成功响应(200–299)
  • HTTP响应状态代码----重定向(300–399)
  • HTTP响应状态代码----服务器错误 (500–599)

HTTP响应状态代码----客户端错误(400–499)相关推荐

  1. 415 http请求 hutool_HTTP状态码(响应码)之客户端错误400

    HTTP状态码(响应码)400意为客户端错误,下面列出HTTP状态码400系列所代表的含义: 400:Bad Request(错误请求) 因发送的请求语法错误,服务器无法正常读取. HTTP/0.9 ...

  2. HTTP响应状态代码----成功响应(200–299)

    HTTP响应状态码 200 OK 201 Created 202 Accepted 203 Non-Authoritative Information 204 No Content 205 Reset ...

  3. Java中级篇——Spring MVC 是什么(附加响应状态代码列举)

    1.关于springMVC 基于Spring框架,主要解决后端服务器接受客户端服务器接受客户提交的请求,并给予响应相关的问题.的框架 目录 1.关于springMVC 基于Spring框架,主要解决后 ...

  4. HTTP状态代码2XX、3XX、4XX、5XX分析

    返回一个HTTP状态代码是在响应请求时为您网站上显示的服务器状态,举例如下: ·当用户在浏览器中访问网页. ·当搜索引擎蜘蛛的抓取网页. HTTP状态码是五个不同的类别: 1XX临时/信息响应 2XX ...

  5. HTTP 响应状态码规范

    HTTP 响应状态代码指示特定 HTTP 请求是否已成功完成.响应分为五类:信息响应,成功响应,重定向,客户端错误和服务器错误.状态代码由 section 10 of RFC 2616定义 一.信息响 ...

  6. http常见的状态码 200,301,400,500

    1.2XX 成功 200:服务器请求成功               204:表示请求成功,但响应报文不含实体的主体部分               206:进行范围请求 2.3XX 重定向 301: ...

  7. HTTP网页请求响应的状态码/状态代码

    文章目录 1开头 询问客户端是否还有请求消息 2开头 (请求成功)表示成功处理了请求的状态代码 3开头 (请求被重定向)表示要完成请求,需要进一步操作. 通常,这些状态代码用来重定向 4开头 (请求错 ...

  8. HTTP常见状态码404、400、500等对应的错误原因

    一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 400(错误请求) 服务器不理解请求的语法. 404(未找到) 服务器找不到请求的网页.例如 ...

  9. web api开启错误提示_当HTTP状态代码不足时:处理Web API错误报告

    web api开启错误提示 RESTful Web API设计的一个领域(经常被忽视)是如何报告与业务或应用程序有关的错误和问题. 首先要想到HTTP状态代码的正确用法,尽管非常方便,但通常它的信息量 ...

  10. 当HTTP状态代码不足时:处理Web API错误报告

    RESTful Web API设计的一个领域(经常被忽视)是如何报告与业务或应用程序有关的错误和问题. 首先要想到HTTP状态代码的正确用法,尽管它非常方便,但通常它的信息量还不够. 让我们以400错 ...

最新文章

  1. Online Judge上陪审团选人问题用Java实现的一个AC解
  2. go语言 rlock() defer runlock()_Go并发编程之美-读写锁
  3. 《Web前端开发精品课 HTML与CSS进阶教程》——1.4 id和class
  4. 项望烽:移动 IM 开发之心跳​
  5. factorybean 声明_阿里面试题:BeanFactory与FactoryBean的区别
  6. 三 s5p4418对mcp2515 can总线的支持
  7. SQL Server表分区【转】
  8. Windows 2003下×××服务器架设攻略
  9. ubuntu中显示本机的gpu_Ubuntu下如何查看GPU版本和使用信息
  10. Mybatis-Plus 使用自定义注入器后,查询条件中不再添加逻辑删除字段限定条件
  11. linux下docker部署nginx
  12. 如果您能天天读上一遍,就能和老外对话了!
  13. c语言圆形体体积计算器,圆的半径计算软件
  14. VMware 虚拟机开启Ip地址自动更换解决
  15. 20年南京大学软件工程考研经验分享
  16. STM32串口通信-USART全面讲解
  17. 理光复印机扫描到windows共享文件夹操作步骤
  18. shell脚本通过正则表达式提取 IP 地址
  19. 微信小程序授权手机号码登录
  20. 三维场景中常用的路径动画

热门文章

  1. VMware安装linux镜像
  2. 单片机通过蜂鸣器播放任意音乐代码实现(1):单片机代码部分
  3. 23种设计模式总结+清晰图解(必收藏)
  4. Pycharm快速入门(5) — Python解释器和环境配置
  5. 河南理工大学计算机软件考研857数据结构
  6. 人人商城-人人社区数据字典(数据表)
  7. 风渠全能永久免费进销存,无功能限制,网络+单机组合版本+云商平台管理系统,风渠ERP。(源代码)
  8. 2015年最新Scala语言视频教程
  9. c语言编程编写笑脸,用C语言编写笑脸游戏.doc
  10. java三年面试题(分布式篇)不定期更新