`
johnnyhg
  • 浏览: 347248 次
  • 来自: NA
社区版块
存档分类
最新评论

HTTP分析之二:标准状态代码

    博客分类:
  • web
阅读更多

Number

Description

100

Continue

101

Switching protocols

200

OK

201

Created

202

Accepted

203

Non-Authoritative Information

204

No Content

205

Reset Content

206

Partial Content

300

Multiple Choices

301

Moved Permanently

302

Found

303

See Other

304

Not Modified

305

Use Proxy

307

Temporary Redirect

400

Bad Request

401

Unauthorized

402

Payment Required

403

Forbidden

404

Not Found

405

Method Not Allowed

406

Not Acceptable

407

Proxy Authentication Required

408

Request Timeout

409

Conflict

410

Gone

411

Length Required

412

Precondition Failed

413

Request Entity Too Large

414

Request-URI Too Long

415

Unsupported Media Type

416

Requested Range Not Suitable

417

Expectation Failed

500

Internal Server Error

501

Not Implemented

502

Bad Gateway

503

Service Unavailable

504

Gateway Timeout

505

HTTP Version Not Supported





1.1 消息1xx(Informational 1xx)
该类状态代码用于表示临时回应。临时回应由状态行(Status-Line)及可选标题组成,由空行终止。HTTP/1.0中没有定义任何1xx的状态代码,所以它们不是对HTTP/1.0请求的合法回应。实际上,它们主要用于实验用途,这已经超出本文档的范围。

1.2 成功2xx(Successful 2xx)
表示客户端请求被成功接收、理解、接受。
200 OK
请求成功。回应的信息依赖于请求所使用的方法,如下:
GET 要请求的资源已经放在回应的实体中了。
HEAD 没有实体主体,回应中只包括标题信息。  
POST 实体(描述或包含操作的结果)。
201 Created
请求完成,结果是创建了新资源。新创建资源的URI可在回应的实体中得到。原始服务器应在发出该状态代码前创建该资源。如果该操作不能立即完成,服务器必须在该资源可用时在回应主体中给出提示,否则,服务器端应回应202(可被接受)。
在本文定义的方法,只有POST可以创建资源。
202 Accepted
请求被接受,但处理尚未完成。请求可能不一定会最终完成,有可能被处理过程随时中断,在这种情况下,没有办法在异步操作中重新发送状态代码。
202回应是没有义务的,这样做的目的是允许服务器不必等到用户代理和服务器间的连接结束,就可以响应其它过程的请求(象每天运行一次的,基于批处理的过程)。
在某些回应中返回的实体中包括当前请求的状态指示、状态监视器指针或用户对请求能否实现的评估信息。
204 No Content
服务器端已经实现了请求,但是没有返回新的信息。如果客户是用户代理,则勿需为此更新自身的文档视图。该回应主要是为了在不影响用户代理激活文档视图的前 提下,进行script语句的输入及其它操作。该回应还可能包括新的、以实体标题形式表示的元信息,它可被当前用户代理激活视图中的文档所使用。

1.3 重定向(Redirection 3xx)
该类状态码表示用户代理要想完成请求,还需要发出进一步的操作。这些操作只有当后跟的请求是GET或HEAD时,才可由用户代理来实现,而不用与用户进行交互。用户代理永远也不要对请求进行5次以上的重定向操作,这样可能导致无限循环。
300 Multiple Choices
该状态码不被HTTP/1.0的应用程序直接使用,只是做为3xx类型回应的缺省解释。存在多个可用的被请求资源。
除非是HEAD请求,否则回应的实体中必须包括这些资源的字符列表及位置信息,由用户或用户代理来决定哪个是最适合的。
如果服务器有首选,它应将对应的URL信息存放在位置域(Location field)处,用户代理会根据此域的值来实现自动的重定向。
301 Moved Permanently
请求到的资源都会分配一个永久的URL,这样就可以在将来通过该URL来访问此资源。有编辑链接功能的客户端会尽可能地根据服务器端传回的新链接而自动更 新请求URI。新的URL必须由回应中的位置域指定。除非是HEAD请求,否则回应的实体主体(Entity-Body)必须包括对新URL超链接的简要 描述。
如果用POST方法发出请求,而接收到301回应状态码。在这种情况下,除非用户确认,否则用户代理不必自动重定向请求,因为这将导致改变已发出请求的环境。
注意:当在接收到301状态码后而自动重定向POST请求时,一些现存的用户代理会错误地将其改为GET请求。
302 Moved Temporarily
请求到的资源在一个不同的URL处临时保存。因为重定向有时会被更改,客户端应继续用请求URI来发出以后的请求。新的URL必须由回应中的位置域指定。除非是HEAD请求,否则回应的实体主体(Entity-Body)必须包括对新URL超链接的简要描述。
如果用POST方法发出请求,而接收到302回应状态码。在这种情况下,除非用户确认,否则用户代理不必自动重定向请求,因为这将导致改变已发出请求的环境。
注意:当在接收到302状态码后而自动重定向POST请求时,一些现存的用户代理会错误地将其改为GET请求。
304 Not Modified
如果客户端成功执行了条件GET请求,而对应文件自If-Modified-Since域所指定的日期以来就没有更新过,服务器应当回应此状态码,而不是 将实体主体发送给客户端。回应标题域中只应包括一些相关信息,比如缓存管理器、与实体最近更新(entity’s Last-Modified)日期无关的修改。相关标题域的例子有:日期、服务器、过期时间。每当304回应中给出的域值发生变化,缓存都应当对缓存的实 体进行更新。

1.4 客户端错误(Client Error)4xx
4xx类的状态码表示客户端发生错误。如果客户端在收到4xx代码时请求还没有完成,它应当立即终止向服务器发送数据。除了回应HEAD请求外,不论错误是临时的还是永久的,服务器端都必须在回应的实体中包含错误状态的解释。这些状态码适用于任何请求方法。
注意:如果客户端正在发送数据,服务器端的TCP实现应当小心,以确保客户端在关闭输入连接之前收到回应包。如果客户端在关闭后仍旧向服务器发送数据,服务器会给客户  端发送一个复位包,清空客户端尚未处理的输入缓冲区,以终止HTTP应用程序的读取、解释活动。
400 非法请求(Bad Request)
如果请求的语法不对,服务器将无法理解。客户端在对该请求做出更改之前,不应再次向服务器重复发送该请求。
401 未授权(Unauthorized)
请求需要用户授权。回应中的WWW-Authenticate标题域(10.16节)应提示用户以授权方式请求资源。客户端应使用合适的授权标题域 (10.2节)来重复该请求。如果请求中已经包括了授权信任信息,那回应的401表示此授权被拒绝。如果用户代理在多次尝试之后,回应一样还是返回401 状态代码,用户应当察看一下回应的实体,因为在实体中会包括一些相关的动态信息。HTTP访问授权会在11节中解释。
403 禁止(Forbidden)
服务器理解请求,但是拒绝实现该请求。授权对此没有帮助,客户端应当停止重复发送此请求。如果不是用HEAD请求方法,而且服务器端愿意公布请求未被实现 原因的前提下,服务器会将拒绝原因写在回应实体中。该状态码一般用于服务器端不想公布请求被拒绝的细节或没有其它的回应可用。
404 没有找到(Not Found)
服务器没有找到与请求URI相符的资源。404状态码并不指明状况是临时性的还是永久性的。如果服务器不希望为客户端提供这方面的信息,还回应403(禁止)状态码。

1.5 服务器错误(Server Error )5xx
回应代码以‘5’开头的状态码表示服务器端发现自己出现错误,不能继续执行请求。如果客户端在收到5xx状态码时,请求尚未完成,它应当立即停止向服务器发送数据。除了回应HEAD请求外,服务器应当在其回应实体中包括对错误情况的解释、并指明是临时性的还永久性的。
这类回应代码没有标题域,可适用于任何请求方法。
500 服务器内部错误(Internal Server Error)
服务器碰到了意外情况,使其无法继续回应请求。
501 未实现(Not Implemented)
服务器无法提供对请求中所要求功能的支持。如果服务器无法识别请求方法就会回应此状态代码,这意味着不能回应请求所要求的任何资源。
502 非法网关(Bad Gateway)
充当网关或代理的服务器从要发送请求的上游(upstream)服务器收到非法的回应。
503 服务不可用(Service Unavailable)
服务器当前无法处理请求。这一般是由于服务器临时性超载或维护引起的。该状态码暗示情况是暂时性的,要产生一些延迟。
注意:503状态码并没有暗示服务器在超载时一定要返回此状态码。一些服务器可能希望在超载时采用简单处理,即断掉连接。

IIS 错误代码大汇总
400 无法解析此请求。
401.1 未经授权:访问由于凭据无效被拒绝。
401.2 未经授权: 访问由于服务器配置倾向使用替代身份验证方法而被拒绝。
401.3 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。
401.4 未经授权:Web 服务器上安装的筛选器授权失败。
401.5 未经授权:ISAPI/CGI 应用程序授权失败。
401.7 未经授权:由于 Web 服务器上的 URL 授权策略而拒绝访问。
403 禁止访问:访问被拒绝。
403.1 禁止访问:执行访问被拒绝。
403.2 禁止访问:读取访问被拒绝。
403.3 禁止访问:写入访问被拒绝。
403.4 禁止访问:需要使用 SSL 查看该资源。
403.5 禁止访问:需要使用 SSL 128 查看该资源。
403.6 禁止访问:客户端的 IP 地址被拒绝。
403.7 禁止访问:需要 SSL 客户端证书。
403.8 禁止访问:客户端的 DNS 名称被拒绝。
403.9 禁止访问:太多客户端试图连接到 Web 服务器。
403.10 禁止访问:Web 服务器配置为拒绝执行访问。
403.11 禁止访问:密码已更改。
403.12 禁止访问:服务器证书映射器拒绝了客户端证书访问。
403.13 禁止访问:客户端证书已在 Web 服务器上吊销。
403.14 禁止访问:在 Web 服务器上已拒绝目录列表。
403.15 禁止访问:Web 服务器已超过客户端访问许可证限制。
403.16 禁止访问:客户端证书格式错误或未被 Web 服务器信任。
403.17 禁止访问:客户端证书已经到期或者尚未生效。
403.18 禁止访问:无法在当前应用程序池中执行请求的 URL。
403.19 禁止访问:无法在该应用程序池中为客户端执行 CGI。
403.20 禁止访问:Passport 登录失败。
404 找不到文件或目录。
404.1 文件或目录未找到:网站无法在所请求的端口访问。
注意 404.1 错误只会出现在具有多个 IP 地址的计算机上。如果在特定 IP 地址/端口组合上收到客户端请求,而且没有将 IP 地址配置为在该特定的端口上侦听,则 IIS 返回 404.1 HTTP 错误。例如,如果一台计算机有两个 IP 地址,而只将其中一个 IP 地址配置为在端口 80 上侦听,则另一个 IP 地址从端口 80 收到的任何请求都将导致 IIS 返回 404.1 错误。只应在此服务级别设置该错误,因为只有当服务器上使用多个 IP 地址时才会将它返回给客户端。
404.2 文件或目录无法找到:锁定策略禁止该请求。
404.3 文件或目录无法找到:MIME 映射策略禁止该请求。
405 用于访问该页的 HTTP 动作未被许可。
406 客户端浏览器不接受所请求页面的 MIME 类型。
407 Web 服务器需要初始的代理验证。
410 文件已删除。
412 客户端设置的前提条件在 Web 服务器上评估时失败。
414 请求 URL 太大,因此在 Web 服务器上不接受该 URL。
500 服务器内部错误。
500.11 服务器错误:Web 服务器上的应用程序正在关闭。
500.12 服务器错误:Web 服务器上的应用程序正在重新启动。
500.13 服务器错误:Web 服务器太忙。
500.14 服务器错误:服务器上的无效应用程序配置。
500.15 服务器错误:不允许直接请求 GLOBAL.ASA。
500.16 服务器错误:UNC 授权凭据不正确。
500.17 服务器错误:URL 授权存储无法找到。
500.18 服务器错误:URL 授权存储无法打开。
500.19 服务器错误:该文件的数据在配置数据库中配置不正确。
500.20 服务器错误:URL 授权域无法找到。
500.100 内部服务器错误:ASP 错误。
501 标题值指定的配置没有执行。
502 Web 服务器作为网关或代理服务器时收到无效的响应。

分享到:
评论

相关推荐

    HTTP 状态代码及其定义

    6. 特殊状态代码:除了标准的三位数状态代码,还有一些非官方或者预留的状态代码,如418(我是茶壶)是一个愚人节玩笑,520(Web服务器扩展错误)可能是某些云服务提供商自定义的状态代码。 了解并掌握HTTP状态代码...

    标准状态机_状态机_

    理解标准状态机的概念及其应用对于开发高效、可靠且可维护的系统至关重要。 一、状态机的基本概念 1. 状态:状态是系统在某一时刻的表现或特性,每个状态代表了系统的一种特定情况或行为。 2. 转换:转换是从一个...

    《MATLAB统计分析与应用:40个案例分析》程序与数据.zip

    《MATLAB统计分析与应用:40个案例分析》是一本深入探讨如何使用MATLAB进行统计分析的书籍,配套的ZIP文件包含了一系列的程序代码和数据,为读者提供了丰富的实践资源。MATLAB是一款强大的数学计算软件,尤其在数值...

    linux源代码分析:Linux操作系统源代码详细

    ### Linux源代码分析 #### 知识点概览 本文主要围绕Linux操作系统的源代码进行深入剖析,旨在帮助读者理解Linux内核是如何实现其核心功能的。这些功能包括但不限于:多任务处理、内存管理、进程调度等。我们将通过...

    GB 02261.1-2003-T 个人基本信息分类与代码

    婚姻状况代码对个人的婚姻状况进行分类,如未婚、已婚、离异或丧偶等状态,用不同的代码来表示,方便在数据分析和管理中区分和使用。 4. GB/T2261.3-2003个人基本信息分类与代码 第3部分:健康状况代码 此部分涉及...

    编译原理词法分析源代码

    在编程领域,编译原理是理解计算机语言处理过程的关键部分,它涉及到将高级语言转换为机器可执行的二进制代码。词法分析是编译器设计中的第一步,它是从源代码文本中识别出有意义的、称为“词法单元”或“标记”的小...

    词法分析器C语言编写(附实验报告)

    它负责将源代码文本分解成一个个有意义的符号,即词素,为后续的语法分析提供基础。在这个过程中,词法分析器通常会识别出关键字、标识符、常量、运算符以及各种分隔符等。 在C语言中编写词法分析器,我们需要对...

    C++语法分析代码

    对于C++而言,这意味着检查源代码是否遵循C++标准定义的BNF(巴科斯范式)或EBNF(扩展巴科斯范式)规则。 在C++中,语法分析通常有两种主要方法:LL(Left-to-right, Leftmost derivation)和LR(Left-to-right, ...

    词法分析代码

    词法分析是编译原理中的一个关键步骤,它将源代码转换为一系列有意义的符号,称为标记(Token),为后续的语法分析和编译过程打下基础。在C++编程语言中,词法分析通常涉及识别关键字、标识符、常量、运算符以及分隔...

    电气代码:086 可靠性评估.zip

    2. 可靠性分析方法:086电气代码涵盖了多种可靠性分析方法,如故障树分析(FTA)、事件树分析(ETA)、可靠性预测和寿命数据分析等。这些方法帮助工程师识别潜在的故障模式,评估其对系统整体性能的影响,并采取预防措施...

    http 协议分析代码实例

    解析代码需能识别并处理各种状态码。 4. **头部字段**:HTTP报文中的头部字段提供了关于请求或响应的附加信息,如Cookie、Content-Type、Host等。解析时需逐个读取并处理这些字段。 5. **编码处理**:HTTP协议允许...

    linux mtd源代码分析

    ### Linux MTD源代码分析 #### 一、概述 Linux MTD (Memory Technology Devices) 是一个用于支持非易失性存储器技术的框架,主要用于管理 Flash 存储设备。本篇文档将对 Linux MTD 源代码进行深入分析,以便更好地...

    词法分析器(源代码)

    1. 输入处理:词法分析器如何读取源代码文件,是通过标准输入、文件指针还是其他方式? 2. 字符流处理:如何处理Unicode编码,以及如何识别和处理特殊字符? 3. 正则表达式或自动机:源代码中是否使用了预定义的正则...

    sivionfive平台的编译,opensbi代码架构,程序分析

    本文将深入探讨如何在SivionFive平台上进行编译工作,同时介绍OpenSBI(开放简单的固件接口)的代码架构以及程序分析的方法。 首先,我们来了解SivionFive平台的编译过程。编译是将高级语言源代码转换为机器可执行...

    FCM聚类 交通状态判别 代码

    交通状态的划分并不总是清晰的,同一道路在不同时间可能表现出不同的交通特性,这就需要模糊聚类方法来更准确地分析和归类。 交通状态判别是交通管理与规划中的关键任务,通过对交通流量、速度、密度等参数的分析,...

    Go-goreporter一个能够静态分析单元测试代码审查和生成代码质量报告的Golang工具

    这使得开发者和团队负责人可以直观地了解项目的代码质量状态,并根据报告指导优化工作。 5. **可扩展性**: Go-goreporter的设计允许开发者根据项目需求添加自定义的检查规则,增强了其灵活性和适应性。通过插件...

    cisp课件:安全漏洞与恶意代码

    适用于源代码、二进制代码或中间代码片段。常用方法包括流分析、符号执行、模型检测等。 - **动态漏洞挖掘**:通过监控代码运行状态或测试用例结果来挖掘漏洞的方法。与静态分析相比,这种方法的优势在于其较高的...

    词法分析器 d

    在使用VC进行开发时,开发者可能会利用标准库或第三方库(如Flex和Bison)来辅助实现词法分析器。VC还支持创建自定义的输入流类来读取源代码,以及使用C++的面向对象特性封装词法分析逻辑。 通过这个课程设计,学生...

    客户端/服务器模式代码分析

    ### 客户端/服务器模式代码分析 在深入解析客户端/服务器模式的C代码实现之前,我们先简要概述...通过分析这段代码,我们可以更好地理解客户端/服务器模型中服务器端的工作机制,以及如何利用标准库函数进行网络通信。

    基于R包scCancer修改的单细胞分析基础代码

    在单细胞分析领域,R语言由于其强大的统计分析能力和丰富的生物信息学包,已经成为不可或缺的工具之一。"基于R包scCancer修改的单细胞分析基础代码"是一个针对单细胞数据处理和分析的资源,旨在帮助研究者更有效地...

Global site tag (gtag.js) - Google Analytics