HTTP状态码图示
这里总结下我们日常开发中常用的HTTP状态码,分享一个老外对HTTP状态码形象化用图片表示的网站:https://http.cat/
总结如下:
表示服务器已经接收到了请求头,并且客户端应该继续发送请求体。
表示请求方已经要求服务器切换协议,并且服务器已经接受并会进行处理。
HTTP 请求成功的标准应答。实际的应答内容由请求使用的方法来决定。
请求已经被接受,并且请求所对应的资源已经被创建。
请求已被接受,尚未完成处理,也有可能会被拒绝。
在成功处理请求后服务器并没有返回任何实体内容。
依照子请求的数量的不同,消息体包含不同的响应代码。
表示被请求的资源可以提供多种选项让客户端进行选择
该请求应当被定向到给定的URI(统一资源定位符)
这是一个工业实践和标准相互矛盾的例子。一些Web应用和框架会使用302状态码
对应当前请求的响应可以使用GET方法从另一个URI获取
表示资源自上次请求以来没有被改变。
(译注:被请求的资源必须通过指定的代理才能被访问) 大多数HTTP客户端不会正确响应这个状态码,主要是出于安全性的原因
在这种情况下,请求会从另外的URI响应但是未来的请求仍会使用原始的URI
因为错误的语法,请求不能完成
当需要授权,但授权失败或还没有授权时返回的状态码
该状态码是为了将来可能的需求而预留的。这个代码通常不使用,但是其最初的意图是可以被某种电子货币所使用。
请求有效,但是服务器拒绝响应它。
请求的资源不能找到,但是将来也许可用。
请求某资源时使用的请求方法不能被该资源所支持。
被请求资源能够产生的内容不满足请求头中指定的类型。
服务器等待请求超时
因为请求中存在冲突导致请求无法被处理
被请求的资源已不可用,同时后续也不再可用。
请求所对应的资源需要指明长度,但请求中并没有包含长度。
其请求数据实体过大,超过服务器处理能力。
URI过长,服务器不能处理
客户端请求部分文件,但是服务器并不能提供这个范围值。
服务器不能满足请求头重指定的要求。
在实际HTTP服务器中不会实现该状态码
请求格式正确但是因为存在语意错误无法响应。
当前资源被上锁
因为之前的请求失败而导致了本次请求失败
在WebDav Advanced Collections 草案中定义
客户端应该切换到不同的协议
用户在指定时间内发送的请求过多。
因为请求中的单个域过大、或者全部域全加起来过大。
在Nginx记录中使用,表示服务器没有向客户端返回信息并且已经关闭了连接
微软所扩展的一个状态码
当没有其他更加确切的信息可以给出时,给出的一个一般性错误信息。
作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应
服务器当前不可用。
请求的透明内容协商导致循环引用
服务器无法存储完成请求所必须的内容。
服务器在处理请求时发现一个无限循环
尽管很多服务器使用该协议,但其并没有在任何RFC中说明
这个状态码没有在任何RFC中说明,但微软公司在用。