当前位置: 首页 > 科技观察

HTTP服务器状态码分析

时间:2023-03-12 19:26:47 科技观察

在做接口测试和性能测试的时候,会出现比较多的HTTP错误,查看错误,比如超时,图片链接,服务器连接不上等。所以总结了这块知识。HTTP服务器状态码定义(StatusCodeDefinitions)1.1消息1xx(Informational1xx)这类状态码用来表示临时响应。临时响应由一个状态行和可选的标题组成,以空行结束。HTTP/1.0中没有定义1xx状态码,因此它们不是  对HTTP/1.0请求的合法响应。事实上,它们主要用于实验用途,这超出了本文档的范围。1.2成功2xx(Successful2xx)表示客户端请求已被成功接收、理解、接受。200OK请求成功。响应信息取决于请求使用的方法,如下所示:GET请求的资源已经放在响应的实体中。HEAD没有实体主体,响应中只包含头部信息。POST实体(描述或包含操作的结果)。201Created请求已完成,导致创建了一个新资源。新创建资源的URI在响应实体中可用。源服务器应在发出此状态代码之前创建资源。如果操作不能立即完成,服务器必须在资源可用时在响应体中给出提示,否则,服务器应响应202(可接受)。在本文定义的方法中,只有POST可以创建资源。202Accepted请求已被接受,但处理尚未完成。请求可能不一定最终确定,并且可能在处理过程中随时中断,在这种情况下没有办法在异步操作中重新发送状态码。202响应是非强制性的,这样做的目的是让服务器响应其他进程(例如每天运行一次的基于批处理的进程)的请求,而无需等待用户代理与服务器之间的连接结束。某些响应中返回的实体包括当前请求状态的指示、指向状态监视器的指针或用户对是否可以满足请求的评估。204NoContent服务器已经执行了请求,但是没有返回新的信息。如果客户端是用户代理,则不需要为此更新自己的文档视图。该响应主要用于脚本语句的输入等操作,不影响用户代理激活文档视图。响应还可能包括实体标头形式的新元信息,该信息可用于当前用户代理的活动视图中的文档。1.3重定向(Redirection3xx)这种状态码表示用户代理需要发出进一步的操作才能完成请求。如果后续请求是GET或HEAD,这些操作只能由用户代理执行而无需用户交互。用户代理不应将请求重定向超过5次,因为这可能会导致***循环。300MultipleChoices此状态码不直接被HTTP/1.0应用程序使用,而只是作为3xx类型响应的默认解释。有多个请求的资源可用。除非是HEAD请求,否则响应实体必须包含这些资源的字符列表和位置信息,由用户或用户代理决定哪个最合适。如果服务器有***,就应该在位置字段(Location字段)中存储相应的URL信息,用户代理会根据该字段的值实现自动重定向。301MovedPermanently请求的资源会被分配一个唯一的URL,以便以后可以通过这个URL访问该资源。具有编辑链接功能的客户端会根据服务器返回的新链接尽可能自动更新请求URI。新URL必须由响应中的位置字段指定。除非是HEAD请求,否则响应的Entity-Body  (Entity-Body)必须包含对新URL超链接的简短描述。如果使用POST方法发出请求并收到301响应状态代码。在这种情况下,除非用户确认,否则用户代理不必自动重定向请求,因为这会导致发出请求的环境发生变化。注意:在收到301状态代码后自动重定向POST请求时,一些现有的用户代理会错误地将其更改为GET请求。302MovedTemporarily请求的资源暂时存储在不同的URL中。因为重定向有时会改变,客户端应该继续使用Request-URI来处理未来的请求。新URL必须由响应中的位置字段指定。除非是HEAD请求,否则响应的实体主体必须包含新URL超链接的简短描述。如果使用POST方法发出请求并收到302响应状态代码。在这种情况下,除非用户确认,否则用户代理不必自动重定向请求,因为这会导致发出请求的环境发生变化。注意:在收到302状态代码后自动重定向POST请求时,一些现有的用户代理错误地将其更改为GET请求。304NotModified如果客户端成功执行了条件GET请求,并且对应的文件自If-Modified-Since字段指定的日期之后没有更新过,服务器应该响应这个状态码,而不是将实体主体发送给客户。只有相关信息应该包含在响应头字段中,例如缓存管理器,以及与实体的Last-Modified日期无关的修改。相关报头字段的例子有:日期、服务器、过期时间。每当304响应中给出的字段值发生变化时,缓存应该更新缓存的实体。1.4客户端错误(ClientError)4xx4xx状态码表示客户端发生错误。如果客户端在收到4xx代码时还没有完成请求,就应该立即停止向服务器发送数据。除了响应HEAD请求外,无论错误是暂时的还是永久的,服务器都必须在响应实体中包含对错误状态的解释。这些状态代码适用于任何请求方法。注意:如果客户端正在发送数据,服务器端TCP实现应注意确保客户端在关闭传入连接之前收到回复数据包。如果客户端在关闭后仍然向服务端发送数据,则服务端会向客户端发送一个重置包  ,以清除客户端未处理的输入缓冲区,从而终止HTTP应用程序的读取和解释活动。400BadRequest如果请求的语法不正确,服务器将无法理解。在对请求进行更改之前,客户端不应再次向服务器重复请求。401未授权(Unauthorized)请求需要用户授权。响应中的WWW-Authenticate头字段(第10.16节)应该提示用户以授权方式请求资源。客户端应该使用适当的授权标头字段(第10.2节)重复请求。如果请求中包含授权信任信息,则返回401表示授权被拒绝。如果用户代理在多次尝试后返回相同的401状态代码,用户应该查看响应正文,因为它包含一些相关的动态信息。HTTP访问授权在第11节解释。403禁止访问(Forbidden)服务器理解请求,但拒绝执行。授权对此无济于事,客户端应停止重复发送此请求。如果没有使用HEAD请求方式,而服务器愿意公布请求没有实现的原因,服务器会在响应实体中写上拒绝的原因。当服务器不想发布被拒绝请求的详细信息或没有其他响应可用时,通常使用此状态代码。404NotFound(未找到)服务器没有找到与请求的URI匹配的资源。404状态代码不表示情况是暂时的还是永久的。如果服务器不希望向客户端提供此信息,它还会以403(禁止)状态代码进行响应。1.5服务器错误(ServerError)5xx响应码以'5'开头的状态码表示服务器发现错误,无法继续执行请求。如果客户端在收到5xx状态码时还没有完成请求,则应立即停止向服务器发送数据。除了响应HEAD请求之外,服务器应该在它们的响应实体中包含对错误情况的解释,表明它是临时的还是永久的。这种类型的响应码没有头部字段,可以应用于任何请求方法。500InternalServerError(内部服务器错误)服务器遇到意外情况,导致无法继续响应请求。501NotImplemented服务器无法为请求中请求的功能提供支持。如果服务器无法识别请求方法,则返回此状态码,这意味着请求请求的任何资源都无法返回。502BadGateway作为网关或代理的服务器收到来自上游服务器的非法响应,该响应正要发送请求。503服务不可用(ServiceUnavailable)服务器当前无法处理请求。这通常是由临时服务器过载或维护引起的。此状态代码表示情况是暂时的,并且会发生一些延迟。注意:503状态码并不意味着服务器在过载时必须返回这个状态码。一些服务器可能希望在过载时简单地断开连接。IIS错误代码大摘要400无法解析请求。401.1未授权:由于凭据无效,访问被拒绝。401.2未授权:访问被拒绝,因为服务器配置更喜欢使用备用身份验证方法。401.3未授权:由于请求资源上的ACL设置,访问被拒绝。401.4未授权:安装在Web服务器上的过滤器未授权。401.5未授权:ISAPI/CGI应用程序授权失败。401.7未授权:由于Web服务器上的URL授权策略,访问被拒绝。403Forbidden:访问被拒绝。403.1禁止访问:执行访问被拒绝。403.2禁止访问:读取访问被拒绝。403.3禁止访问:写访问被拒绝。403.4禁止访问:需要SSL才能查看此资源。403.5禁止访问:查看此资源需要SSL128。403.6Forbidden:客户端的IP地址被拒绝。403.7禁止访问:需要SSL客户端证书。403.8Forbidden:客户端的DNS名称被拒绝。403.9Forbidden:尝试连接到Web服务器的客户端太多。403.10Forbidden:Web服务器配置为拒绝执行访问。403.11禁止访问:密码已更改。403.12Forbidden:客户端证书访问被服务器证书映射器拒绝。403.13Forbidden:客户端证书已在Web服务器上被吊销。403.14Forbidden:Web服务器上的目录列表已被拒绝。403.15Forbidden:Web服务器已超出客户端访问许可限制。403.16Forbidden:客户端证书格式错误或不受Web服务器信任。403.17Forbidden:客户端证书已过期或尚未生效。403.18Forbidden:请求的URL不能在当前应用程序池中执行。403.19Forbidden:无法为该应用程序池中的客户端执行CGI。403.20Forbidden:Passport登录失败。404找不到文件或目录。404.1找不到文件或目录:无法在请求的端口上访问该网站。注意404.1错误只会发生在具有多个IP地址的计算机上。如果在特定IP地址/端口组合上收到客户端请求,并且IP地址未配置为侦听该特定端口,IIS将返回404.1HTTP错误。例如,如果一台计算机有两个IP地址,并且只有一个IP地址配置为侦听端口80,则另一个IP地址从端口80收到的任何请求都会导致IIS返回404.1错误。这个错误应该只设置在这个服务级别,因为它只会在服务器上使用多个IP地址时返回给客户端。404.2找不到文件或目录:请求被锁定策略禁止。404.3未找到文件或目录:MIME映射策略禁止请求。405不允许用于访问此页面的HTTP操作。406客户端浏览器不接受所请求页面的MIME类型。407Web服务器需要初始代理身份验证。410文件已删除。412客户端设置的先决条件在Web服务器上评估时失败。414请求URL太大,Web服务器不接受。500内部服务器错误。500.11服务器错误:Web服务器上的应用程序正在关闭。500.12服务器错误:Web服务器上的应用程序正在重新启动。500.13服务器错误:网络服务器太忙。500.14服务器错误:服务器上的应用程序配置无效。500.15服务器错误:不允许直接请求GLOBAL.ASA。500.16服务器错误:UNC授权凭据不正确。500.17服务器错误:找不到URL权限存储。500.18服务器错误:无法打开URL权限存储。500.19服务器错误:此文件的数据在配置数据库中配置不正确。500.20服务器错误:找不到URL授权域。500100内部服务器错误:ASP错误。501标头值指定的配置未实现。502Web服务器在充当网关或代理服务器时收到无效响应。