HTTP 状态码详解

1xx 消息相关的
代表请求已经收到,继续处理。

这个状态码的分类意味着一个临时的响应,仅有状态行和可选的头部信息组成,并且有一个空行结尾。因为HTTP/1.0并没有定义任何1xx相关的状态码,所以服务器应该发出一个1xx的响应给一个HTTP/1.0的客户端除非在实验条件下。

100 Continue 继续
这意味着服务器已经收到请求的头部信息了,客户端应该继续发送请求的主体部分。如果请求的主体部分很大,可能会出现服务器因为不匹配的头部信息的原则拒绝了请求。因此,为了让服务器只通过请求的头部信息就检查请求能否被接受,客户端必须将 Extpect: 100-continue作为初始化请求并且监测100-continue状态码是否被服务器收到在继续发送请求体之前(或者收到417 Expectation Failed状态码并且不再继续)

101 Switching Protocols 切换协议
这意味着请求者要求服务器切换协议并且服务器也确认将会那么做。

102 Processing 处理中
作为一个WebDAV的请求可能包含多个子请求包括文件操作等,这将可能花费很长时间去完成操作。这个状态码意味着服务器已经收到了请求,并且正在处理中,所以当前暂无响应。这样将避免客户端因为超时而认为当前请求丢失。

2XX 成功
这一类状态码意味着请求的行为已经被客户端收到、理解接受而且被成功地处理。

200 OK 成功
成功HTTP请求的标准响应状态码。不过实际的响应取决于请求者所使用的方法。如果在一个GET的请求中,响应将会包含对应资源的实体。而在一个POST请求中,响应将会包含一个实体的描述或者是请求行为的结果。

201 Created 已创建
请求已经被满足,并且一个新的资源将会被创建。

202 Accepted接受
请求已经被接受并被处理,但是处理还没有完成。请求可能最终不会采取行动,因为在执行过程中可能会被打断。

203 Non-Authoritative Information 非权威的信息
服务器成功处理请求,但是返回信息可能来自其它源。

204 No Content 无内容
服务器成功处理请求,但是没有返回任何内容。通常被用来被作为成功删除的请求的响应。

205 Reset Content 重置内容
服务器成功处理请求,但是没有返回任何内容。和204不同的是,响应需要请求者重置文档视图。

206 Partial Content 部分内容
服务器只返回了一部分资源因为客户端发送了一系列的请求头。这些请求头被像wget的工具去恢复已经被中断的下载,或者将下载分成多个同步的流。

207 多状态
紧跟消息体后面的是xml消息并且包含了多个单独的响应状态码,响应的数量取决于子请求的个数。

208 已经报告
一个DAV的绑定成员被前一个请求枚举,并且没有被再一次包括。

3XX跳转
这一类状态码意味着客户端必须执行额外的动作去完成请求。大部分这些状态码被用于url重定向。只有当第二请求方法是GET或者是HEAD的情况下,用户代理可能会执行额外的动作在没有用户交互的情况下。一个用户代理不能自动地重定向请求超过5次,因为这样的重定向经常意味着一个死循环。

300 Multiple Choices多重选择
意味着对于这个资源有多个选项需要客户端注意。例如,可以用来展示不同格式的视频,使用不同的扩展名列出文件,或者消除文字的歧义。

301 Moved Permanently 永久移动
当前以及未来的所有请求应该被定位到指定的url上去。

302 Move temporarily发现
这是工业实践和标准相矛盾的例子。HTTP/1.0规范需要客户端执行一个临时的跳转(原始的描述短语是”临时移动”),但是流行的浏览器使用303查看其它的功能去实现302.因此,HTTP/1.1添加了状态码303和307去分辨这两个操作。然而,一些web程序和框架使用302状态码就好像它是303一样。

303 See Other查看其它
当前请求的响应能够在其它的URI地址上使用GET方法发现。当接收到一个POST响应的请求,则应该假设服务器已经收到数据而且跳转应该发出一个单独的GET消息。

304 Not Modified 未修改
意味着资源没有被修改因为请求头指定的版本跟本地保存的版本并未修改或没有匹配。这说明没有必要重新传输资源,因为客户端仍然有一个以前下载的副本。

305 Use Proxy 使用代理(自从HTTP/1.1)
请求的资源只能通过代理才能访问,并且访问的地址由响应提供。很多HTTP客户端(像火狐和IE)因为安全问题,不能正确地处理该响应。

307 Temporary Redirect 临时跳转(自从HTTP/1.1)
在这种情况下,当前请求应该被另一个URI地址重新发送,然而未来的请求仍然应该使用原始的URI地址。和302不同的是历史实现,请求方法不允许改变当重新发送原始请求。例如,一个POST请求应该被另一个POST请求重新发送。

4XX 客户端错误
4XX类别的状态码是为了预防客户端出现错误的情况。除了响应请求头的情况,服务器应该包括错误情形解释的实体无论是临时的还是永久的条件。这些状态码可以和任何请求方法匹配。用户代理应该展示可以被包括的实体给用户。

400 Bad Request 错误请求
服务器因为一些事情感知到客户端的错误而不继续处理请求(例如不正确的请求语法,无效的请求消息框架,以及虚假的请求路由)。

401 Unauthorized 未授权
和403禁止相似,但是明确用于需要授权的、失败的或者是不支持的。响应必须包括适用于请求资源的WWW-认证头字段。查看基本访问认证和数字访问认证。

402 需要付款
为以后保留使用。原意是该状态码可被用于一些数字货币或者是微支付,但是目前还没有普及,所以这些代码不经常被使用。YouYube使用这个状态如果某个IP地址发出了过多的请求,并要求用户输入验证码。

403 Forbidden 禁止访问
这个请求是一个有效的请求,但是服务器拒绝响应它。和401未授权的响应不同,是否授权并没有区别。

404 Not Found 找不到
请求资源无法被找到但是可能以后会再次有效。客户端以后发出的请求也是被允许的。

405 Method Not Allowed 方法不允许
请求由不支持该方法的资源发出。例如,使用GET方法在一个需要数据通过POST展现的表单或者是使用PUT在一个只读的资源中。

406 Not Acceptable 不可接受的
被请求的资源只能用于生成内容而不会接收发送请求中的头。

407 Proxy Authentication Required 需要代理认证
客户端必须首先使用代理认证自己。

408 Request Timeout 请求超时
服务器超时等待请求。根据HTTP规范:”客户端在服务器等待期间没有发出任何请求”。客户端可能会在未来的某个时候重复请求而不做任何修改。

409 Conflict冲突
意味着请求不能被处理因为存在冲突,例如多个更新的情况下存在修改冲突。

410 Gone 遗失的
当前状态意味着被请求的资源不再有效并且以后也不会再次生效。一般用于一个资源被有意地删除或者资源需要被清除。一旦接收410状态码,客户端将不应该再次请求该资源。例如搜素引擎应该从它们的下表中移除资源。大部分用例并不需要客户端和搜索引擎清空资源,而是使用404找不到来代替。

411 Length Required 长度要求
请求没有指定内容的长度,但是请求的资源需要指定。

412 Precondition Failed 前置条件失败
服务器不满足请求者所请求的预置条件。

413 Request Entity Too Large 响应实体太大
请求超过服务器所能处理和允许的最大值。

414 Request-URI Too Long 请求-URI太长
被提供的URI对服务器的处理来说太长。经常出现在太多被编码的数据被作为查询字符串的GET请求的结果,因此需要被转换为POST请求。

415 Unsupported Media Type 不被支持的媒体类型
请求实体的媒体类型不被服务器或者资源支持。例如,客户端上传一个image/svg+xml的图片,但是服务器需要图片使用不同的格式。

416 Requested Range Not Satisfiable 请求范围不能满足
客户端要求文件的部分(字节服务),但是服务器不能提供那部分的内容。例如,如果客户端要求的部分超过文件的底端。

417 Expectation Failed期望失败
服务器期望请求头字段的要求。

418 我是一个茶壶
这个代码是在1998年作为传统的IETF April Fools‘ jokes被定义的在RFC2324,超文本咖啡罐控制协议,但是并没有被实际的HTTP服务器实现。RFC指定了这个代码应该是由茶罐返回给速溶咖啡。

419 认证超时
并不是HTTP标注的一部分,419认证超时表示以前的有效证明已经失效了。同时也被用于401未认证的替代选择为了从其它被拒绝访问的已认证客户端中指定服务器的资源。。

422 Unprocessable Entity 不可处理的实体(WebDAV)
请求符合要求但是不能接受错误由于语法错误。

423 Locked锁定的
资源访问被锁定。

424 Failed Dependency 失败的依赖
请求由于上一个请求的失败而失败。

426 Upgrade Required需要升级
客户端应该切换不同的协议例如TLS/1.0在指定的升级的头字段里。

5XX 服务器错误
服务器似乎不能满足有效的请求

以数字5开头的响应状态码意味着服务器已经意识到遇到了一个错误或者是无法发送请求。除了响应HEAD请求的时候,服务器应该包含一个保存错误情形解释的实体,并且标识这个情况是暂时的还是永久的。同样地,用户代理也应该展示任何被包含的实体给用户。这些响应码适用于任何请求方法。

500 Internal Server Error 服务器内部错误
一个普通的错误信息,当一个意外的情况出现并且没有其它明确的消息是合适的。

501 Not Implemented 没有实现
服务既不能识别请求方法,也缺少满足请求的能力。一般会在将来可用(例如一个新的web-service接口特性)

502 Bad Gateway 错误的网关
服务器作为一个网关或者代理,从上游的服务器中接收到无效的响应。

503 Service Unavailable 服务不可用
服务当前不可用(因为过载或者下线维护)。一般而言,只是一种暂时的状态。

504 Gateway Timeout 网关超时
服务器作为一个网关或者代理,但是没有从上游服务器收到即时的响应。

505 HTTP Version Not Supported HTTP版本不支持
服务器不支持在请求中使用的HTTP协议。

506 Variant Also Negotiates 变量也是导航
对于请求是透明的内容导航导致循环参照。

507 Insufficient Storage 存储不足
服务器不能存储需要的内容去完成请求。

508 发现环路
服务器发现了一个无限的循环档处理请求的时候。

509 Bandwidth Limit Exceeded 频带宽度超出限制(Apache的扩展)
这个状态码没有在任何RFCS中指定。使用方法是未知的。

511 需要网络授权
客户端需要授权去火的网络的访问权限。一般用于代理交互中被用来进行网络的访问控制。

520 未知错误
这个状态码也没有被指定在任何RFC中,并且只会被一些服务器返回,例如微软的Azure和CloudFlare服务器:”520错误本质上是一个捕获全部的响应当原始服务器返回一些未知的或者一些不能被忍受或者被解释的(协议违反或者空响应)”。

598 网络读取超时异常(未知)
这个状态码也没有在任何RFC中指定,但是被用在微软的HTTP代理中去标注一个网络读取超时在一个客户端之前的代理的后面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值