HTTP状态码的含义

HTTP状态码

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

下面是常见的HTTP状态码:

200 - 请求成功

301 - 资源(网页等)被永久转移到其它URL

404 - 请求的资源(网页等)不存在

500 - 内部服务器错误

400 - 请求无效 

403 - 禁止访问 


HTTP状态码分类

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

HTTP状态码分类
  分 类   分类描述
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误


HTTP状态码列表:

HTTP状态码列表

状态码       
状态码英文名称 中文描述
100 Continue 继续。客户端应继续其请求
101 Switching Protocols 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议
 
200 OK 请求成功。一般用于GET与POST请求
201 Created  已创建。成功请求并创建了新的资源
202 Accepted 已接受。已经接受请求,但未处理完成
203 Non-Authoritative      Information 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本
204 No Content 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档
205 Reset Content 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域
206 Partial Content 部分内容。服务器成功处理了部分GET请求
 
300 Multiple Choices              多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择
301 Moved Permanently 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302 Found 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
303 See Other 查看其它地址。与301类似。使用GET和POST请求查看
304 Not Modified 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
305 Use Proxy 使用代理。所请求的资源必须通过代理访问
306 Unused 已经被废弃的HTTP状态码
307 Temporary Redirect 临时重定向。与302类似。使用GET请求重定向
 
400 Bad Request 客户端请求的语法错误,服务器无法理解
401 Unauthorized 请求要求用户的身份认证
402 Payment Required 保留,将来使用
403 Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求
404 Not Found 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
405 Method Not Allowed 客户端请求中的方法被禁止
406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求
407 Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权
408 Request Time-out 服务器等待客户端发送的请求时间过长,超时
409 Conflict 服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突
410 Gone 客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置
411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息
412 Precondition Failed 客户端请求信息的先决条件错误
413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息
414 Request-URI Too Large 请求的URI过长(URI通常为网址),服务器无法处理
415 Unsupported Media Type 服务器无法处理请求附带的媒体格式
416 Requested range not satisfiable 客户端请求的范围无效
417 Expectation Failed 服务器无法满足Expect的请求头信息
 
500 Internal Server Error 服务器内部错误,无法完成请求
501 Not Implemented 服务器不支持请求的功能,无法完成请求
502 Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求
503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
504 Gateway Time-out 充当网关或代理的服务器,未及时从远端服务器获取请求
505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理


记忆HTTP状态码是有一些困难的,因为状态码很多且很难记忆。Tomomi Imura利用她巧妙的构思,PS了一系列的HTTP状态信息。在你看过这些图片之后,你绝对可以记住一些 HTTP 状态码。

PS:你可以在Flickr 看到全部到图片。

以下列出这些状态码以及它们最基本的含义

   100 继续

表示服务器已经接收到了请求头,并且客户端应该继续发送请求体。

101 切换协议

表示请求方已经要求服务器切换协议,并且服务器已经接受并会进行处理。

200 正常

HTTP 请求成功的标准应答。实际的应答内容由请求使用的方法来决定。

201 已创建

请求已经被接受,并且请求所对应的资源已经被创建。

202 接受

请求已被接受,尚未完成处理,也有可能会被拒绝。

204 无内容

在成功处理请求后服务器并没有返回任何实体内容。

207 多重状态

依照子请求的数量的不同,消息体包含不同的响应代码。

300 多重选择

表示被请求的资源可以提供多种选项让客户端进行选择

301 永久移除

该请求应当被定向到给定的URI(统一资源定位符)

302 找到

这是一个工业实践和标准相互矛盾的例子。一些Web应用和框架会使用302状态码

303 参见其他信息

对应当前请求的响应可以使用GET方法从另一个URI获取

304 未修改

表示资源自上次请求以来没有被改变。

305 使用代理

(译注:被请求的资源必须通过指定的代理才能被访问) 大多数HTTP客户端不会正确响应这个状态码,主要是出于安全性的原因

307 临时重定向

在这种情况下,请求会从另外的URI响应但是未来的请求仍会使用原始的URI

400 错误请求

因为错误的语法,请求不能完成

401 未授权

当需要授权,但授权失败或还没有授权时返回的状态码

402 需要支付

该状态码是为了将来可能的需求而预留的。这个代码通常不使用,但是其最初的意图是可以被某种电子货币所使用。

403 禁止

请求有效,但是服务器拒绝响应它。

404 没有找到

请求的资源不能找到,但是将来也许可用。

405 方法不允许

请求某资源时使用的请求方法不能被该资源所支持。

406 无法访问

被请求资源能够产生的内容不满足请求头中指定的类型。

408 请求超时

服务器等待请求超时

409 冲突

因为请求中存在冲突导致请求无法被处理

410 已删除

被请求的资源已不可用,同时后续也不再可用。

411 需要数据长度

请求所对应的资源需要指明长度,但请求中并没有包含长度。

413 请求实体过大

其请求数据实体过大,超过服务器处理能力。

414 请求URI过长

URI过长,服务器不能处理

416 请求范围不符合要求

客户端请求部分文件,但是服务器并不能提供这个范围值。

417 期望失败

服务器不能满足请求头重指定的要求。

418 我是茶壶

在实际HTTP服务器中不会实现该状态码

422 不可处理的请求实体

请求格式正确但是因为存在语意错误无法响应。

423 上锁

当前资源被上锁

424 错误依赖关系

因为之前的请求失败而导致了本次请求失败

425 乱序集合

在WebDav Advanced Collections 草案中定义

426 需要更新

客户端应该切换到不同的协议

429 请求过多

用户在指定时间内发送的请求过多。

431 请求头过大

因为请求中的单个域过大、或者全部域全加起来过大。

444 没有响应

在Nginx记录中使用,表示服务器没有向客户端返回信息并且已经关闭了连接

450 被Windows家长控制屏蔽

微软所扩展的一个状态码

500 服务器内部错误

当没有其他更加确切的信息可以给出时,给出的一个一般性错误信息。

502 错误网关

作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应

503 服务不可用

服务器当前不可用。

506 变元协商

请求的透明内容协商导致循环引用

507 储存空间不足

服务器无法存储完成请求所必须的内容。

508 检测到循环

服务器在处理请求时发现一个无限循环

509 超过带宽限制

尽管很多服务器使用该协议,但其并没有在任何RFC中说明

599 网络连接超时错误

这个状态码没有在任何RFC中说明,但微软公司在用。



你可能感兴趣的:(http,200,201,404,403)