发布时间:2023-2-22 分类: 行业动态
当观看者访问网页时,观看者的浏览器向网页所在的服务器发送请求。在浏览器接收并显示网页之前,网页所在的服务器返回包含HTTP状态代码的服务器头,以响应浏览器请求。
HTTP状态代码的英语状态是HTTP状态代码。以下是常见的HTTP状态代码:
200–要求成功
301–资源(网页等)将永久转移到其他网址
404–请求的资源(网页等)不存在
500–内部服务器错误
HTTP状态代码的分类
HTTP状态代码由三位十进制数字组成。第一个十进制数定义状态代码的类型。最后两位数字没有分类效果。 HTTP状态代码分为5种类型:
分类和分类说明
1 **信息,服务器接收请求并需要请求者继续操作
2 **成功,操作已成功接收和处理
3 **重定向,完成请求需要采取进一步行动
4 **客户端错误,请求包含语法错误或请求无法完成
5 **服务器错误,服务器在处理请求时遇到错误
HTTP状态代码表(版本1)此表包含状态代码的英文名称
状态代码状态代码英文名称中文说明
状态代码在1的开头
100继续继续。客户应该继续其请求
101Switching Protocols切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到新版本的HTTP协议
状态代码在2的开头
200 OK请求成功。通常用于GET和POST请求
201Created已经创建。成功请求并创建了新资源
202Accepted已被接受。请求已被接受但未处理
203非权威信息。请求成功。但是返回的元信息不在原始服务器上,而是副本
204No Content没有内容。服务器已成功处理但未返回内容。确保浏览器继续显示当前文档而不更新页面
205Reset Content重置内容。服务器已成功处理,用户终端(例如:浏览器)应重置文档视图。使用此返回代码清除浏览器的表单字段
206Partial Content的一部分。服务器成功处理了一些GET请求
状态代码在3的开头
300多种选择有多种选择。所请求的资源可以包括多个位置,并且可以为用户终端(例如,浏览器)选择返回资源特性和地址的列表
301Moved永久移动。请求的资源已永久移动到新URI,返回消息将包含新URI,浏览器将自动定向到新URI。将来的任何新请求都应替换为新的URI
302暂时移动。与301类似。但资源只是暂时移动。客户端应继续使用原始URI
303查看OtherView其他地址。与301类似。使用GET和POST请求查看
304 Not Modified尚未修改。未修改请求的资源,并且在服务器返回此状态代码时不会返回任何资源。客户端通常通过提供标题来缓存所访问的资源,该标头声明客户端只想返回在指定日期之后修改的那些资源。
305Use Proxy使用代理。必须通过代理
访问所请求的资源306未使用的已弃用的HTTP状态代码
307临时重定向临时重定向。与302类似。使用GET请求重定向
状态代码在4的开头
400Bad请求客户端请求的语法不正确,服务器无法理解
401Unauthorized请求需要用户身份验证
402Payment Required Reserved,Future Use
403Forbidden服务器了解请求客户端的请求,但拒绝执行请求
404Not Found服务器无法根据客户端的请求找到资源(网页)。有了这段代码,网站设计师就可以设置“rdquo;您请求的资源无法找到个性化页面
禁用客户端请求中的405Method Not Allowed方法
406根据客户端请求的内容特征,可接受的服务器无法完成请求
407Proxy Authentication Required请求需要代理的身份验证,类似于401,但请求者应使用代理进行授权
408Request超时服务器等待客户端发送请求太长,超时
409Conflict服务器可以完成客户端的PUT请求以返回此代码,并且服务器在处理请求时存在冲突
410Gone客户端请求的资源不再存在。 410与404不同。如果资源已被永久删除,则可以使用410代码,并且网站设计者可以通过301代码指定资源的新位置
411Length Required服务器无法处理客户端发送的没有Content-Length
的请求信息412Precondition失败的客户端请求信息先决条件错误
413请求实体太大请求被拒绝,因为请求的实体太大而服务器无法处理。为防止来自客户端的连续请求,服务器可能会关闭连接。如果只有服务器暂时无法处理,它将包含Retry-After响应消息
414Request-URI请求URI太长(URI通常是URL),服务器无法处理
415Unsupported Media Type服务器无法处理附加到请求的媒体格式
416请求范围不可满足的客户端请求范围无效
417期望失败的服务器无法满足Expect请求标头信息
状态代码在5的开头
500内部服务器错误服务器内部错误,无法完成请求
501Not Implemented服务器不支持所请求的功能,无法完成请求
502Bad网关充当网关或代理服务器,并从远程服务器收到无效请求
503Service Unavailable由于过载或系统维护,服务器暂时无法处理客户端的请求。延迟的长度可以包含在服务器的Retry-After标头信息
中504Gateway Time-out充当网关或代理服务器,不及时从远程服务器获取请求
505HTTP版本不支持的服务器不支持所请求的HTTP协议的版本,无法处理
HTTP状态代码列表(版本2)此表的描述更详细
状态代码含义
100个客户端应继续发送请求。此临时响应用于通知客户端服务器已收到其某些请求但尚未被拒绝。客户端应继续发送请求的其余部分,或者如果请求已完成则忽略响应。请求完成后,服务器必须向客户端发送最终响应。
101服务器已了解客户端的请求,并将通过Upgrade头通知客户端以使用不同的协议来完成请求。发送此响应的最后一个空行后,服务器将切换到Upgrade标头中定义的那些协议。
只有在切换新协议更有益时,才应采取类似措施。例如,切换到新的HTTP版本比旧版本更有利,或者切换到实时和同步的协议以提供利用这些特征的资源。
102 WebDAV(RFC 2518)扩展的状态代码,表示将继续执行处理。
200请求已成功,请求将返回响应头或数据体,并返回此响应。
201请求已实现,并且已根据请求创建了新资源,并且已使用Location标头返回其URI。如果无法及时建立所需资源,您应该返回 202 Accepted’。
202服务器已接受请求但尚未处理。由于它可能被拒绝,该请求可能会也可能不会被执行。在异步操作的情况下,没有比发送此状态代码更方便的方法。
返回对202状态代码的响应的目的是允许服务器接受来自其他进程的请求(例如,每天只执行一次的基于批处理的操作),而不必将客户端连接到服务器,直到批量操作完成。接受请求处理和返回202状态代码的响应应包括指示返回实体中当前处理状态的一些信息,以及指向处理状态监视器或状态预测的指针,以便用户可以估计操作是否已经完成。
203服务器已成功处理请求,但返回的实体标头元信息不是在源服务器上有效的有效集,而是来自本地或第三方的副本。当前信息可以是原始版本的子集或超集。例如,包含资源的元数据可以使源服务器知道超级元信息。没有必要使用此状态代码,只有在不使用此状态代码的情况下响应返回200 OK时才适用。
204服务器成功处理了请求,但不需要返回任何实体内容,并希望返回更新的元信息。响应可以以实体头的形式返回新的或更新的元信息。如果存在这样的头信息,则它应该对应于所请求的变量。
如果客户端是浏览器,则用户的浏览器应保留发送请求的页面,而不会在文档视图中进行任何更改,即使新的或更新的元信息按照规范应用于用户的浏览器活动。视图中的文档。
由于204响应被禁止包含任何消息体,因此它始终以消息头之后的第一个空行结束。
205服务器成功处理了请求,但没有返回任何内容。但与204响应不同,返回此状态代码的响应要求请求者重置文档视图。响应主要用于接受用户输入并立即重置表单,以便用户可以轻松启动另一个输入。
与204响应一样,响应也被禁止包含任何消息体,并以消息头之后的第一个空行结束。
206服务器已成功处理了一些GET请求。像FlashGet或Thunder这样的HTTP下载工具使用这样的响应来实现断点或将大文档拆分成多个下载段并同时下载它们。
请求必须包含Range标头以指示客户端期望的内容范围,并且可以包括If-Range作为请求条件。
响应必须包含以下标头字段:
Content-Range用于指示此响应中返回的内容的范围;如果它是具有多部分/字节范围的Content-Type的多段下载,则每个多部分段应包含Content-Range字段以指示该段落的内容范围。 。如果响应包含Content-Length,则其值必须与其返回的内容范围中的实际字节数相匹配。
日期
ETag和/或Content-Location,如果相同的请求应该返回200响应。
Expires,Cache-Control和/或Vary,如果它们的值可能与之前对应于同一变量的其他响应的值不同。
如果响应请求使用If-Range强缓存身份验证,则此响应不应包含其他实体头;如果响应请求使用If-Range弱缓存验证,则此响应禁止包含其他实体头;这避免了缓存的实体内容与更新的实体头信息之间的不一致。否则,此响应应包含应在应该返回的200响应中返回的所有实体头字段。
如果ETag或Last-Modified标头不完全匹配,则客户端缓存应禁止将206响应返回的内容与任何先前缓存的内容组合。
任何不支持Range和Content-Range标头的缓存都会禁用缓存206响应的内容。
207 WebDAV扩展的状态代码(RFC 2518)代表下一个消息体,它将是一条XML消息,并且可能包含一系列独立的响应代码,具体取决于先前的子请求数。
300请求的资源有一系列反馈可供选择,每个反馈都有自己的特定地址和浏览器驱动的协商信息。用户或浏览器可以选择重定向的首选地址。
除非这是HEAD请求,否则响应应包括具有资源特征和地址列表的实体,以便用户或浏览器可以选择最合适的重定向地址。此实体的格式由Content-Type定义的格式确定。浏览器可以根据响应的格式和浏览器本身的功能自动做出最合适的选择。当然,RFC 2616规范没有规定如何进行这种自动选择。
如果服务器本身已经有一个首选反馈选项,则应在Location中指示此反馈的URI;浏览器可以使用此Location值作为自动重定向的地址。此外,除非另有说明,否则此响应是可缓存的。
301请求的资源已永久移动到新位置,并且此资源的任何将来引用都应使用此响应返回的多个URI之一。如果可能,具有链接编辑功能的客户端应自动将请求的地址修改为从服务器反馈的地址。除非另有说明,否则此响应是可缓存的。
应在响应的“位置”字段中返回新的永久URI。除非这是HEAD请求,否则响应实体应包含指向新URI的超链接和简短描述。
如果这不是GET或HEAD请求,则禁止浏览器自动重定向,除非用户确认,因为请求的条件可能会发生变化。
注意:对于某些使用HTTP/1.0协议的浏览器,当他们发送的POST请求获得301响应时,下一个重定向请求将变为GET。
302请求的资源现在临时响应来自不同URI的请求。由于此类重定向是临时的,因此客户端应继续将后续请求发送到原始地址。只有在Cache-Control或Expires中指定时,此响应才可缓存。
应在响应的“位置”字段中返回新的临时URI。除非这是HEAD请求,否则响应实体应包含指向新URI的超链接和简短描述。
如果这不是GET或HEAD请求,则禁止浏览器自动重定向,除非用户确认,因为请求的条件可能会发生变化。
注意:虽然RFC 1945和RFC 2068规范不允许客户端在重定向时更改请求的方法,但许多现有浏览器将302响应视为303响应并使用GET方法访问Location中指定的URI,无论URI如何。最初请求的方法。添加状态代码303和307以阐明服务器期望客户端做出反应的内容。
可以在另一个URI上找到对应于当前请求的303的响应,并且客户端应该通过GET访问该资源。此方法主要用于允许脚本激活的POST请求输出重定向到新资源。此新URI不是对原始资源的备用引用。同时,禁止缓存303响应。当然,可以缓存第二个请求(重定向)。
应在响应的“位置”字段中返回新URI。除非这是HEAD请求,否则响应实体应包含指向新URI的超链接和简短描述。
注意:HTTP/1.1之前的许多浏览器都无法正确理解303状态。如果您需要考虑与这些浏览器的交互,302状态代码应该足够,因为大多数浏览器完全按照上述规范要求客户端处理303响应的方式处理302响应。
304如果客户端发送条件GET请求并且允许该请求,并且文档的内容(自上次访问或根据请求的条件)未更改,则服务器应返回此状态代码。 304响应禁止包含消息正文,因此它始终以消息头之后的第一个空行结束。
响应必须包含以下标头信息:
日期,除非此服务器没有时钟。如果没有时钟的服务器也遵循这些规则,代理服务器和客户端可以将Date字段添加到接收的响应头(如RFC 2068中所指定),并且缓存机制将起作用。
ETag和/或Content-Location,如果相同的请求应该返回200响应。
Expires,Cache-Control和/或Vary,如果它们的值可能与之前对应于同一变量的其他响应的值不同。
如果响应请求使用强缓存验证,则此响应不应包含其他实体标头;否则(例如,条件GET请求使用弱缓存验证),此响应禁止包含其他实体头;这避免了缓存的实体内容与更新的实体头信息之间的不一致。
如果304响应指示实体当前未被高速缓存,则高速缓存系统必须忽略该响应并重复发送不包含限制的请求。
如果收到304请求更新缓存条目的响应,则缓存系统必须更新整个条目以反映响应中更新的所有字段的值。
305指定的代理必须访问所请求的资源。 Location字段将给出指定代理的URI信息,接收者需要发送单独的请求来访问相应的资源。只有原始服务器才能建立305响应。
注意:RFC 2068中没有明确的305响应来重定向单个请求,并且只能由源服务器建立。忽视这些限制可能会导致严重的安全后果。
306在最新版本的规范中,不再使用306状态代码。
307请求的资源现在临时响应来自不同URI的请求。由于此类重定向是临时的,因此客户端应继续将后续请求发送到原始地址。只有在Cache-Control或Expires中指定时,此响应才可缓存。
应在响应的“位置”字段中返回新的临时URI。除非这是HEAD请求,否则响应实体应包含指向新URI的超链接和简短描述。由于某些浏览器无法识别307响应,因此有必要在上面添加必要的信息,以便用户可以理解并发出对新URI的访问请求。
如果这不是GET或HEAD请求,则禁止浏览器自动重定向,除非用户确认,因为请求的条件可能会相应更改。
4001.语义不正确。服务器无法理解当前请求。除非经过修改,否则客户端不应重复提交此请求。
2.请求参数不正确。
401当前请求需要用户认证。响应必须包含一个WWW-Authenticate头,用于请求用户信息的请求资源。客户端可以使用适当的授权标头信息重复提交请求。如果当前请求已包含授权证书,则401响应表示服务器已拒绝这些证书。如果401响应包含与先前响应相同的认证质询并且浏览器尝试了至少一次验证,则浏览器应该呈现响应中包含的实体信息,因为该实体信息可以包含相关的诊断信息。 。参见RFC 2617.
402状态代码保留用于将来可能的需要。
403服务器已理解该请求但拒绝执行它。与401响应不同,身份验证不提供任何帮助,并且不应重复提交此请求。如果这不是HEAD请求,并且服务器希望能够解释无法执行请求的原因,则应在实体内描述拒绝的原因。当然,如果服务器不希望客户端获取任何信息,也可以返回404响应。
404请求失败,并且在服务器上找不到请求的资源。没有信息可以告诉用户这种情况是暂时的还是永久性的。如果服务器知道这种情况,则应使用410状态代码通知旧资源由于某些内部配置机制问题而导致其永久不可用,并且没有可跳转的地址。当服务器不想确切地揭示请求被拒绝的原因或者没有其他合适的响应可用时,404状态代码被广泛使用。
405请求行中指定的请求方法不能用于请求相应的资源。响应必须返回Allow标头,以指示当前资源可以接受的请求方法列表。
鉴于PUT,DELETE方法将写入服务器上的资源,因此大多数Web服务器不支持或允许默认配置中的上述请求方法,并且将为此类请求返回405错误。
406所请求的资源的内容属性不能满足请求头中的条件,因此不能生成响应实体。
除非这是HEAD请求,否则响应应返回包含用户或浏览器可以选择的属性和地址列表的实体。实体的格式由Content-Type标头中定义的媒体类型确定。浏览器可以根据格式和自己的功能自行选择。但是,该规范没有定义进行这种自动选择的任何标准。
407与401响应类似,除了客户端必须在代理服务器上进行身份验证。代理服务器必须返回Proxy-Authenticate以进行身份查询。客户端可以返回代理授权标头以进行验证。参见RFC 2617.
408请求超时。客户端在服务器准备等待的时间内没有完成发送请求。客户可以随时再次提交此请求,无需任何更改。
409由于与请求资源的当前状态冲突,无法完成请求。此代码仅允许在用户被认为能够解决冲突并将重新提交新请求的情况下使用。响应应包含足够的信息供用户发现冲突的来源。
冲突通常发生在PUT请求的处理中。例如,在版本检查环境中,附加到PUT提交的特定资源请求的版本信息与先前(第三方)请求冲突,则服务器应返回409错误。告诉用户无法完成请求。此时,响应实体可能包含两个冲突版本之间差异的比较,以便用户可以在合并后重新提交新版本。
410请求的资源在服务器上不再可用,并且没有已知的转发地址。这种情况应该被视为永久性的。如果可能,具有链接编辑功能的客户端应在获得用户权限后删除对该地址的所有引用。如果服务器不知道或不确定条件是否是永久性的,则应使用404状态代码。除非另有说明,否则此响应是可缓存的。
410响应的目的主要是帮助网站管理员维护网站,通知用户资源不再可用,服务器所有者也希望删除与该资源的所有远程连接。此类事件在有时间限制的增值服务中很常见。类似地,410响应还用于通知客户端属于个人的资源在当前服务器站点上不再可用。当然,您是否需要将所有永久不可用的资源标记为’ 410 Gone’以及保留此标记所需的时间完全取决于服务器所有者。
411服务器拒绝接受请求而未定义Content-Length标头。添加指示请求消息正文长度的有效Content-Length标头后,客户端可以再次提交请求。
412服务器无法满足请求的标头字段中的一个或多个先决条件。该状态代码允许客户端在检索资源时在所请求的元信息(请求头字段数据)中设置前提条件,从而防止请求方法应用于除所需内容之外的资源。
413服务器拒绝处理当前请求,因为请求提交的实体数据的大小超出了服务器愿意或能够处理的范围。在这种情况下,服务器可以关闭连接以防止客户端继续发送此请求。
如果此条件是临时的,则服务器应返回Retry-After响应标头,以告知客户端稍后可以重试的时间。
414请求的URI的长度超过了服务器可以解释的长度,因此服务器拒绝为请求提供服务。这是相对罕见的,通常的情况包括:
应该使用POST方法的表单提交成为GET方法,导致查询字符串(查询字符串)太长。
例如,重定向URI“黑洞”,每个重定向都会将旧URI重定向为新URI的一部分,从而导致URI在多次重定向后过长。
客户端正试图利用某些服务器中的安全漏洞来攻击服务器。此类服务器使用固定长度的缓冲区来读取或操作请求的URI。当GET参数超过某个值时,可能会发生缓冲区溢出,导致执行任意代码[1]。没有此类漏洞的服务器应返回414状态代码。
415对于当前请求的方法和请求的资源,请求中提交的实体不是服务器支持的格式,因此请求被拒绝。
416如果请求包含Range请求标头,并且Range中指定的任何数据范围与当前资源的可用范围不一致,并且请求中未定义If-Range请求标头,则服务器应返回416状态码。
如果Range使用字节范围,则表示请求指定的所有数据范围的第一个字节位置超过当前资源的长度。服务器还应包括Content-Range实体头,以指示当前资源的长度,同时返回416状态代码。此响应也被禁止使用multipart/byterange作为其Content-Type。
417服务器无法满足请求标头Expect中指定的预期内容,或者服务器是代理服务器。有明确证据表明,当前路线的下一个节点无法满足Expect的内容。
421从当前客户端的IP地址到服务器的连接数超过了服务器许可证的最大范围。通常,此处的IP地址是指从服务器看到的客户端地址(例如用户的网关或代理服务器地址)。在这种情况下,连接数的计算可能涉及多个最终用户。
422从当前客户端的IP地址到服务器的连接数超过了服务器许可证的最大范围。通常,此处的IP地址是指从服务器看到的客户端地址(例如用户的网关或代理服务器地址)。在这种情况下,连接数的计算可能涉及多个最终用户。
422请求格式是正确的,但由于语义错误而无法响应。 (RFC 4918 WebDAV)423已锁定
当前资源已锁定。 (RFC 4918 WebDAV)
424当前请求由于先前请求之一(例如PROPPATCH)中的错误而失败。 (RFC 4918 WebDAV)
425在WebDav Advanced Collections草案中定义,但未出现在《WebDAV 顺序集协议》(RFC 3658)中。
426客户端应切换到TLS/1.0。 (RFC 2817)
449由Microsoft扩展,表示在执行适当的操作后应重试该请求。
500服务器遇到意外情况,无法完成请求的处理。通常,当服务器的代码出错时,会发生此问题。
501服务器不支持当前请求所需的功能。当服务器无法识别所请求的方法且无法支持其对任何资源的请求时。
502当作为网关或代理服务器的服务器尝试执行请求时,它会从上游服务器收到无效响应。
503由于临时服务器维护或过载,服务器当前无法处理请求。这种情况是暂时的,一段时间后会恢复。如果可以预期延迟时间,则响应可以包括Retry-After报头以指示该延迟时间。如果未给出此Retry-After信息,则客户端应以处理500响应的方式处理它。
注意:503状态代码的存在并不意味着服务器在超载时必须使用它。有些服务器只是想拒绝客户端的连接。
当作为网关或代理的服务器尝试执行请求时,服务器无法从上游服务器(由URI标识的服务器,如HTTP,FTP,LDAP)或辅助服务器(例如, DNS)及时。
注意:当DNS查询超时时,某些代理服务器将返回400或500个错误。
505服务器不支持或拒绝支持请求中使用的HTTP版本。这意味着服务器无法或不愿意使用与客户端相同的版本。响应应包含一个实体,该实体描述不支持该版本的原因以及服务器支持的协议。
506由《透明内容协商协议》(RFC 2295)扩展以表示服务器上的内部配置错误:所请求的协商参数资源被配置为在透明内容协商中使用自身,因此不是协商过程中的合适焦点。
507服务器无法存储完成请求所需的内容。这种情况被认为是暂时的。 WebDAV(RFC 4918)
509服务器达到了带宽限制。这不是官方状态代码,但仍然被广泛使用。
510不需要获得510获得资源所需的战略。 (RFC 2774)