常见http状态码详解

半腔热情 提交于 2020-01-28 16:05:50

HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774 与 RFC 4918 等规范扩展。所有状态码的第一个数字代表了响应的五种状态之一。所示的消息短语是典型的,但是可以提供任何可读取的替代方案。 除非另有说明,状态码是HTTP / 1.1标准(RFC 7231)的一部分。

1** 消息

描述 :
        这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送 1xx 响应。

code 描述
100 Continue 客户端应当继续发送请求
101 Switching Protocols 服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求
102 Processing 由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行

2** 成功

描述 :
        这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。

code 描述
200 Ok 请求已成功,请求所希望的响应头或数据体将随此响应返回
201 Created 请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,且其 URI 已经随Location 头信息返回
202 Accepted 服务器已接受请求,但尚未处理
203 Non-Authoritative Information 服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝
204 No Content 服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的元信
205 Reset Content 服务器成功处理了请求,且没有返回任何内容。与204响应一样,该响应也被禁止包含任何消息体,且以消息头后的第一个空行结束

3** 重定向

描述 :
        这类状态码代表需要客户端采取进一步的操作才能完成请求。

code 描述
300 Multiple Choices 被请求的资源有一系列可供选择的回馈信息,每个都有自己特定的地址和浏览器驱动的商议信息。用户或浏览器能够自行选择一个首选的地址进行重定向
301 Moved Permanently 被请求的资源已永久移动到新位置
302 Move Temporarily 请求的资源临时从不同的 URI响应请求
303 See Other 对应当前请求的响应可以在另一个 URL 上被找到,而且客户端应当采用 GET 的方式访问那个资源
304 Not Modified 客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变
305 Use Proxy 被请求的资源必须通过指定的代理才能被访问
306 Switch Proxy 服务器已接受请求,但尚未处理
307 Temporary Redirect 请求的资源临时从不同的URI 响应请求

4** 请求错误

描述 :
        这类状态码代表需要客户端采取进一步的操作才能完成请求。

code 描述
400 Bad Request 1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。2、请求参数有误。
401 Unauthorized 当前请求需要用户验证
402 Payment Required 该状态码是为了将来可能的需求而预留的
403 Forbidden 服务器已经理解请求,但是拒绝执行它
404 Not Found 请求失败,请求所希望得到的资源未被在服务器上发现
405 Method Not Allowed 请求行中指定的请求方法不能被用于请求相应的资源
406 Not Acceptable 请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体
407 Proxy Authentication Required 与401响应类似,只不过客户端必须在代理服务器上进行身份验证
408 Request Timeout 请求超时
409 Conflict 由于和被请求的资源的当前状态之间存在冲突,请求无法完成
410 Gone 被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址
411 Length Required 服务器拒绝在没有定义 Content-Length 头的情况下接受请求
412 Precondition Failed 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个
413 Request Entity Too Large 服务器拒绝处理当前请求,因为该请求提交的实体数据大小超过了服务器愿意或者能够处理的范围
414 Request-URI Too Long 请求的URI 长度超过了服务器能够解释的长度,因此服务器拒绝对该请求提供服务
415 Unsupported Media Type 对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝
416 Requested Range Not Satisfiable 如果请求中包含了 Range 请求头,并且 Range 中指定的任何数据范围都与当前资源的可用范围不重合,同时请求中又没有定义 If-Range 请求头,那么服务器就应当返回416状态码
417 Expectation Failed 在请求头 Expect 中指定的预期内容无法被服务器满足,或者这个服务器是一个代理服务器,它有明显的证据证明在当前路由的下一个节点上,Expect 的内容无法被满足
418 I’m a teapot
421 Too Many Connections 从当前客户端所在的IP地址到服务器的连接数超过了服务器许可的最大范围
422 Unprocessable Entity 请求格式正确,但是由于含有语义错误,无法响应
423 Locked 当前资源被锁定
424 Failed Dependency 由于之前的某个请求发生的错误,导致当前请求失败
425 Too Early 状态码 425 Too Early 代表服务器不愿意冒风险来处理该请求,原因是处理该请求可能会被“重放”,从而造成潜在的重放攻击
426 Upgrade Required 客户端应当切换到TLS/1.0

5** 服务器错误

描述 :
        这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。除非这是一个HEAD 请求,否则服务器应当包含一个解释当前错误状态以及这个状况是临时的还是永久的解释信息实体。浏览器应当向用户展示任何在当前响应中被包含的实体。

code 描述
500 Internal Server Error 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理
501 Not Implemented 服务器不支持当前请求所需要的某个功能
502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应
503 Service Unavailable 由于临时的服务器维护或者过载,服务器当前无法处理请求
504 Gateway Timeout 作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应
505 HTTP Version Not Supported 服务器已接受请求,但尚未处理
507 Accepted 服务器无法存储完成请求所必须的内容
509 Bandwidth Limit Exceeded 服务器达到带宽限制
510 Not Extended 获取资源所需要的策略并没有被满足

结语

以上就是常见的 http状态码,希望能帮助到大家哦~

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!