415 http请求 hutool_整理HTTP 状态码

HTTP状态码详解

当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。

HTTP状态码的英文为HTTP Status Code。

下面是常见的HTTP状态码:

  • 200 - 请求成功
  • 301 - 资源(网页等)被永久转移到其它URL
  • 404 - 请求的资源(网页等)不存在
  • 500 - 内部服务器错误

HTTP 状态代码表示什么意思?

HTTP 状态码(英语:HTTP Status Code)是用以表示 HTTP 响应状态的 3 位数字代码。比如:

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

熟记这些状态码可以让我们在快速定位 Web 开发中遇到的问题、编写符合规范的接口服务,那么下面就让我们看看这些死板的 3 位数字都是什么意思。

HTTP状态码分类

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:

3b342810069a1e6542b9cfec64de2121.png

1开头(信息响应)

1xx(临时响应):信息性状态码,表示服务器已接收了客户端请求,客户端可继续发送请求。

1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。代码 说明

100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。

101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。

2开头(成功响应

2xx (成功)表示成功处理了请求的状态代码。代码 说明

200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。

201 (已创建) 请求成功并且服务器创建了新的资源。

202 (已接受) 服务器已接受请求,但尚未处理。

203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。

204 (无内容) 服务器成功处理了请求,但没有返回任何内容。

205 (重置内容) 服务器成功处理了请求,但没有返回任何内容。

206 (部分内容) 服务器成功处理了部分 GET 请求。

3开头(重定向

3xx (重定向) 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。

300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。

301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。

302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。

304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。

305 (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。

307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

4开头(客户端响应

4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理。代码 说明

400 (错误请求) 服务器不理解请求的语法。

401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。

403 (禁止) 服务器拒绝请求。

404 (未找到) 服务器找不到请求的网页。

405 (方法禁用) 禁用请求中指定的方法。

406 (不接受) 无法使用请求的内容特性响应请求的网页。

407 (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。

408 (请求超时) 服务器等候请求时发生超时。

409 (冲突) 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。

410 (已删除) 如果请求的资源已永久删除,服务器就会返回此响应。

411 (需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。

412 (未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。

413 (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。

414 (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。

415 (不支持的媒体类型) 请求的格式不受请求页面的支持。

416 (请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。

417 (未满足期望值) 服务器未满足"期望"请求标头字段的要求。

5开头(服务端响应

5xx(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。代码 说明

500 (服务器内部错误) 服务器遇到错误,无法完成请求。

501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。

502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。

503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。

504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。

505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

趣味图解HTTP状态码的含义

来源:云技术实践  时间:2018/11/28 10:09:18  对本文有异议

HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。我们可以通过查看HTTP状态码来判断服务器状态,常见的有404 、502等;但是其他不是很常见的状态码都代表什么状态呢?下面有两张有趣的图片,让你瞬间都能理解了。
HTTP状态码(图一)

3a1ec3747e5ff8bd1481985cb67f2638.png
  • 301—永久移动。被请求的资源已被永久移动位置;
  • 302—请求的资源现在临时从不同的 URI 响应请求;
  • 305—使用代理。被请求的资源必须通过指定的代理才能被访问;
  • 307—临时跳转。被请求的资源在临时从不同的URL响应请求;
  • 400—错误请求;
  • 402—需要付款。该状态码是为了将来可能的需求而预留的,用于一些数字货币或者是微支付;
  • 403—禁止访问。服务器已经理解请求,但是拒绝执行它;
  • 404—找不到对象。请求失败,资源不存在;
  • 406—不可接受的。请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体;

HTTP状态码(图二)

4c0c90ffb9d82ee72f625b133ac9afa6.png
  • 408—请求超时;
  • 409—冲突。由于和被请求的资源的当前状态之间存在冲突,请求无法完成;
  • 410—遗失的。被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址;
  • 413—响应实体太大。服务器拒绝处理当前请求,请求超过服务器所能处理和允许的最大值。
  • 417—期望失败。在请求头 Expect 中指定的预期内容无法被服务器满足;
  • 418—我是一个茶壶。超文本咖啡罐控制协议,但是并没有被实际的HTTP服务器实现;
  • 420—方法失效。
  • 422—不可处理的实体。请求格式正确,但是由于含有语义错误,无法响应;
  • 500—服务器内部错误。服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理;

“404”

最无耻的 HTTP 常用状态码图解

之前有朋友发过一篇 HTTP 状态码大全,我补充一篇,也是网上偶然看见的图,觉得虽然很没有节操但是却很形象生动,分享出来共 High

12cac32f039083af6d6a022fba03a796.png


301 永久移动位置,被请求的资源已经被永久性的转移了位置 302 您请求的资源现在需要临时通过其他的 URI 来获取 305 使用代理,被请求的资源必须通过指定的代理才能访问到 307 临时跳转。被请求的资源在临时从不同的URL响应请求 400 请求错误 402 该状态码是为了将来可能的需求而预留的,比如可能用于一些数字货币或者是微支付 403 禁止访问。服务器已经理解请求,但是拒绝执行它 404 找不到对象。请求失败,资源不存在,程序员找对象简直是宇宙谜题 406 不可接受的。请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体

26e818e3b115a70fb8a629d0d7751729.png


408 请求超时,请活活憋死吧 409 请求冲突。由于和被请求的资源的当前状态之间存在冲突,请求无法完成 410 遗失的。被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址 413 响应实体太大。服务器拒绝处理当前请求,请求超过服务器所能处理和允许的最大值 417 期望失败。在请求头 Expect 中指定的预期内容无法被服务器满足 418 我是一个茶壶。超文本咖啡罐控制协议,但是并没有被实际的HTTP服务器实现 420 方法失效 422 不可处理的实体。请求格式正确,但是由于含有语义错误,无法响应 500 服务器内部错误。服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理

一文牢记HTTP状态码(图解HTTP状态码)

HTTP状态码是干什么的?
HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器的处理是否正常、通知出现的错误等工作。
状态码告知从服务器端返回的请求结果
状态码的职责是当客户端向服务端发送请求时,描述返回的请求结果。
借助状态吗,用户可以知道服务器端是正常处理了请求,还是出现了错误。

32ed8d2c38331112fccf5736d4e2f3d5.png


状态码的类别

类别原因短语


2XX 成功状态码详述
2XX的响应结果表明请求被正常处理了
200 OK

90457aa12458b64480726a27a9061cd7.png


表示从客户端发来的请求在服务端被正常处理了。
在响应报文内,随状态码一起返回的信息会因方法的不同而发生改变。比如,使用GET方法时,对应请求资源的实体会做为响应返回;而使用HEAD方法时,对应请求资源的实体首部不随报文主体作为响应返回(即在响应中只返回首部,不会返回时主体部分)。
204 NoContent

f12248d3cfa5dbd0d461288601e45428.png


该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不允许返回任何实体的主体。比如,当从浏览器发出请求处理后,返回204响应,那么浏览器显示的页面不发生更新。
一般在只需要从客户端往服务器发送信息,而对客户端不需要发送新信息内容的情况下使用。
206 Partial Content

26986b583e66ae27b9dcf3e159e127a2.png


该状态码表示服务端进行了范围请求,而服务器成功执行了这部分的GET请求。响应报文中包含Content-Range制定范围的实体内容。
3XX 重定向
3XX响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。
301 Moved Permanently

74f04ced8b433fa9bae5277aed705790.png


永久重定向。该状态码表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI。也就是说,如果已经把资源对应的URI保存为书签了,这是应该按Location首部字段提示的URI重新保存。
302 Found

67e0d15e277c84a2cc039a87afad4453.png


临时重定向。该状态码表示请求的资源已被分配了新的URI,希望用户(本次)能使用新的URI访问。
和301状态码相似,但302状态码代表的资源不是被永久移动,只是临时性质的。换句话说,已移动的资源对应的URI将来还有可能会发生改变。
303 See Other

0b12825f66eb462046463b7d2189cd28.png


该状态码表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源。
303状态码和302状态码有着相同的功能,但303状态码明确表示客户端应采用GET方法获取资源,这点与302状态码有区别。
301,302,303之间的联系
当301、302、303响应状态码返回时,几乎所有的浏览器都会把POST改成GET,并删除请求报文内的主体,之后请求会自动再次发送。
301,302标准是禁止将POST方法改变成FET方法,但实际使用时大家都会这么做。
304 Not Modified

3be9eacbae7c642b65ece10e5238f124.png


该状态码表示客户端发送附带条件的请求时,服务器允许请求访问资源,但未满足条件的情况。
304状态码返回时,不包含任何响应的主体部分。304虽然被划分在3XX类别中,但是和重定向没有关系。
307 Temporary Redirect
临时重定向。该状态码与302有着相同的含义。尽管302标准禁止POST变换成GET,但实际使用时大家并不遵守。
307会遵照浏览器标准,不会从POST变成GET。但是,对于处理响应时的行为,每种浏览器有可能出现不同的情况。
4XX 客户端错误
4XX的响应结果表明客户端时发生错误的原因所在。
400 Bad Request

aa2805e4ccc73ad3b309579420855ded.png


该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。另外,浏览器会像200 OK一样对待该状态码。
401 Unauthorized

fc8bdca55ee77a231f73ea349134e4ac.png


该状态码表示发送请求需要有通过HTTP认证(BASIC认证、DIGEST认证)的认证信息。另外若之前已进行过1次请求,则表示用户认证失败。
返回含有401的响应必须包含一个适用于被请求资源的WWW-Authenticate首部用于质询(challenge)用户信息。当浏览器初次接收到401响应,会弹出认证用的对话窗口。
403 Forbidden

9bade7aba9c10ab0fbd3a20b31101c31.png


该状态码表明对请求资源的访问被服务器拒绝了。服务器没有必要给出拒绝的详细理由,但如果想做说明的话,可以在实体的主体部分对原因进行描述,这样就能让用户看到。
未获得文件系统的访问授权,访问权限出现某些问题(从未授权的发送源IP地址试图访问)等列举的情况都有可能是发生403的原因。
404 Not Found

5bc76bb6aa4db816902e14d4c3265487.png


该状态码表示服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。
5XX 服务器错误
5XX的响应结果表明服务器本身发生错误。
500 Internal Server Error

b5133c10ea8228b9274d2eacaf63a8d2.png


该状态码表明服务器端在执行请求时发生了错误。也有可能是Web应用存在的bug或某些临时的故障。
503 Service Unavailable

6eccdec2a7721d31a02be25e15eeffe5.png


该状态码表明服务器暂时处于超负荷或正在进行停机维护,现在无法处理请求。如果事先得知解除以上状况需要的时间,最好写入RetryAfter首部字段再返回给客户端。
状态码与状态的不一致
不少返回的状态码响应都是错误的,但是用户可能觉察不到这点。比如Web应用程序内部发生错误,状态码依然返回200 OK 这种情况也经常遇到。

撸猫患者/喜欢喵星人可以参考以下文章

https://www.cnblogs.com/xueweihan/p/11137057.html​www.cnblogs.com

MDN官方链接:

HTTP 响应代码​developer.mozilla.org
141699c16cde9a9c0b0ee5dcfa0e3f13.png

2XX状态解释

浏览器状态码的类别 <<图解HTTP>>​www.jianshu.com
bbbb1a3795ec25b49313cc7a26957156.png
图解 HTTP 笔记(四)--HTTP 状态码​juejin.im 图解HTTP--HTTP状态码​www.jianshu.com
c49b17eb335445c922647be7e5723c24.png
HTTP状态码 | 菜鸟教程​www.runoob.com HTTP常见状态码 200 301 302 404 500​www.cnblogs.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值