HTTP状态码及协议header头域

http://rlog.cn/?p=521

当用户在防问Internet信息服务(IIS)的服务器上的内容时时,IIS服务器响应请求,会自动返回一个表示该请求的状态的数字代码,提供关于相关请求的状态信息。同样当搜索引擎蜘蛛在抓取的过程中,服务器也会相关的http状态码,通过了解http状态代码,可以更详细的分析日志中的访问情况,下面Seoer惜缘收集的http状态代码含义表与部分解决方法:

  100 - 表示已收到请求的一部分,正在继续发送余下部分。

  101 - 切换协议。

  2xx - 成功。服务器成功地接受了客户端请求:

  200 - 确定。客户端请求已成功。

  201 - 已创建。

  202 - 已接受。

  203 - 非权威性信息。

  204 - 无内容。

  205 - 重置内容。

  206 - 部分内容。

  300 - 针对收到请求,服务器可执行多种操作。

  301 - 永久移动转移,请求的内容已永久移动其他新位置。

  302 - 临时移动转移,请求的内容已临时移动新的位置。

  304 - 未修改。自从上次请求后,请求的内容未修改过。

   307 - 临时重定向。服务器目前从不同位置响应请求,但请求者应继续使用原有位置来进行以后的请求。

  400 - 错误的请求。

  401 - 访问被拒绝。IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示:

  401.1 - 登录失败。

  401.2 - 服务器配置导致登录失败。

  401.3 - 由于 ACL 对资源的限制而未获得授权。

  401.4 - 筛选器授权失败。

   401.5 - ISAPI/CGI 应用程序授权失败。

  401.7 - 访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专用。

  403 - 禁止访问:IIS 定义了许多不同的 403 错误,它们指明更为具体的错误原因:

  403.1 - 执行访问被禁止。

  403.2 - 读访问被禁止。

  403.3 - 写访问被禁止。

  403.4 - 要求 SSL。

  403.5 - 要求 SSL 128。

   403.6 - IP 地址被拒绝。

  403.7 - 要求客户端证书。

  403.8 - 站点访问被拒绝。

  403.9 - 用户数过多。

  403.10 - 配置无效。

  403.11 - 密码更改。

  403.12 - 拒绝访问映射表。

  403.13 - 客户端证书被吊销。

  403.14 - 拒绝目录列表。

  403.15 - 超出客户端访问许可。

  403.16 - 客户端证书不受信任或无效。

  403.17 - 客户端证书已过期或尚未生效。

  403.18 - 在当前的应用程序池中不能执行所请求的 URL.这个错误代码为 IIS 6.0 所专用。

  403.19 - 不能为这个应用程序池中的客户端执行 CGI.这个错误代码为 IIS 6.0 所专用。

  403.20 - Passport 登录失败。这个错误代码为 IIS 6.0 所专用。

  404 - 未找到请求的内容。

  404.0 - 未找到文件或目录。

  404.1 - 无法在所请求的端口上访问 Web站点。

   404.2 - Web 服务扩展锁定策略阻止本请求。

  404.3 - MIME 映射策略阻止本请求。

   405 - 用来访问本页面的 HTTP 谓词不被允许(方法不被允许) 。

  406 - 客户端浏览器不接受所请求页面的 MIME 类型。

  407 - 要求进行代理身份验证。

  412 - 前提条件失败。

   413 - 请求实体太大。

  414 - 请求 URI 太长。

  415 - 不支持的媒体类型。

  416 - 所请求的范围无法满足。

  417 - 执行失败。

  423 - 锁定的错误。

   500 - 服务器内部错误。

  500.12 - 应用程序正忙于在 Web 服务器上重新启动。

   500.13 - Web 服务器太忙。

  500.15 - 不允许直接请求 Global.asa。

   500.16 - UNC 授权凭据不正确。这个错误代码为 IIS 6.0 所专用。

  500.18 - URL 授权存储不能打开。这个错误代码为 IIS 6.0 所专用。

  500.100 - 内部 ASP 错误。

  501 - 服务器无法完成请求的功能。

  502 - 服务器用作网关或代理服务器时收到了无效响应。

  502.1 - CGI 应用程序超时。

  502.2 - CGI 应用程序出错。

  503 - 服务不可用。这个错误代码为 IIS 6.0 所专用。

  504 - 网关超时。

  505 - HTTP 版本不受支持。

  常见的 HTTP 状态代码及其原因

  200 - 成功。IIS 已成功处理发送的请求。

  304 - 未修改。客户端请求的内容已在其缓存中,内容自缓存以来尚未被修改过。客户端使用内容的缓存副本,而不从服务器下载内容。

  401.1 - 登录失败。登录不成功,可能因为用户名或密码访问无效。

  401.3 - 服务列表对资源的限制而未获得授权。表示存在NTFS权限问题,或者对试图访问的文件具备相应的权限,也可能发生此错误。

  403.1 - 执行访问被禁止。

  下面是导致此错误信息的两个常见原因:

  您没有足够的执行许可。例如,如果试图访问的 ASP 页所在的目录权限设为“无”,或者,试图执行的 CGI 脚本所在的目录权限为“只允许脚本”,将出现此错误信息。若要修改执行权限,请在 Microsoft 管理控制台 (MMC) 中右击目录,然后依次单击属性和目录选项卡,确保为试图访问的内容设置适当的执行权限。

  您没有将试图执行的文件类型的脚本映射设置为识别所使用的谓词(例如,GET 或 POST)。若要验证这一点,请在 MMC 中右击目录,依次单击属性、目录选项卡和配置,然后验证相应文件类型的脚本映射是否设置为允许所使用的谓词。

   403.2 - 读访问被禁止。验证是否已将IIS设置为允许对目录进行读访问。另外,如果您正在使用默认文件,请验证该文件是否存在。

  403.3 - 写访问被禁止。验证IIS权限和NTFS限是否已设置以便向该目录授予写访问权。

  403.4 - 要求 SSL. 禁用要求安全通道选项,或使用 HTTPS 代替 HTTP 来访问该页面。

  403.5 - 要求 SSL 128.禁用要求 128 位加密选项,或使用支持 128 位加密的浏览器以查看该页面。

  403.6 - IP地址被拒绝。服务器配置拒绝访问您目前的IP地址。

  403.7 - 要求客户端证书。您已把您的服务器配置为要求客户端身份验证证书,但您未安装有效的客户端证书。

  403.8 - 站点访问被拒绝。您已为您用来访问服务器的域设置了域名限制。

  403.9 - 用户数过多。与该服务器连接的用户数量超过了IIS设置的连接数。

  403.12 - 拒绝访问映射表。您要访问的页面要求提供客户端证书,但映射到您的客户端证书的用户 ID 已被拒绝访问该文件。

  404 - 未找到。发生此错误的原因是您试图访问的文件已被移走或删除。

   500 - 内部服务器错误。造成500错误常见原因有:ASP语法出错、ACCESS数据库连接语句出错、文件引用与包含路径出错、使用了服务器不支持的组件如FSO等

  500.12 - 服务器错误:Web 服务器上的应用程序正在重新启动。这表示您在 IIS 重新启动应用程序的过程中试图加载 ASP 页。刷新页面后,此信息即会消失。如果刷新页面后,此信息再次出现,可能是防病毒软件正在扫描 Global.asa 文件。

  500-100.ASP - ASP 错误。如果试图加载的 ASP 页中含有错误代码,将出现此错误信息。若要获得更确切的错误信息,请禁用友好 HTTP 错误信息。默认情况下,只会在默认 Web 站点上启用此错误信息。

  502 - 网关错误。如果试图运行的 CGI 脚本不返回有效的 HTTP 标头集,将出现此错误信息。

  1、错误号401.1 - 未经授权:访问由于凭据无效被拒绝。由于用户匿名访问使用的账号(默认是IUSR_机器名)被禁用,或者没有权限访问计算机,将造成用户无法访问。

HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。
  通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。

  通用头域
  通用头域包含请求和响应消息都支持的头域,通用头域包含Cache-Control、 Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via。对通用头域的扩展要求通讯双方都支持此扩展,如果存在不支持的通用头域,一般将会作为实体头域处理。下面简单介绍几个在UPnP消息中使用的通用头域。
  Cache- Control头域
  Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache- Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max- stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下:
  Public指示响应可被任何缓存区缓存。
  Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。
  no-cache指示请求或响应消息不能缓存
  no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
  max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。
  min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。
  max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。
  Date头域
  Date头域表示消息发送的时间,时间的描述格式由rfc822定义。例如,Date:Mon,31Dec200104:25:57GMT。Date描述的时间表示世界标准时,换算成本地时间,需要知道用户所在的时区。
  Pragma头域
   Pragma头域用来包含实现特定的指令,最常用的是Pragma:no-cache。在HTTP/1.1协议中,它的含义和Cache- Control:no-cache相同。

  请求消息
  请求消息的第一行为下面的格式:
  MethodSPRequest- URISPHTTP-VersionCRLFMethod表示对于Request-URI完成的方法,这个字段是大小写敏感的,包括OPTIONS、 GET、HEAD、POST、PUT、DELETE、TRACE。方法GET和HEAD应该被所有的通用WEB服务器支持,其他所有方法的实现是可选的。 GET方法取回由Request-URI标识的信息。HEAD方法也是取回由Request-URI标识的信息,只是可以在响应时,不返回消息体。 POST方法可以请求服务器接收包含在请求中的实体信息,可以用于提交表单,向新闻组、BBS、邮件群组和数据库发送消息。
  SP表示空格。 Request-URI遵循URI格式,在此字段为星号(*)时,说明请求并不用于某个特定的资源地址,而是用于服务器本身。HTTP-Version表示支持的HTTP版本,例如为HTTP/1.1。CRLF表示换行回车符。请求头域允许客户端向服务器传递关于请求或者关于客户机的附加信息。请求头域可能包含下列字段Accept、Accept-Charset、Accept-Encoding、Accept-Language、 Authorization、From、Host、If-Modified-Since、If-Match、If-None-Match、If- Range、If-Range、If-Unmodified-Since、Max-Forwards、Proxy-Authorization、 Range、Referer、User-Agent。对请求头域的扩展要求通讯双方都支持,如果存在不支持的请求头域,一般将会作为实体头域处理。
  典型的请求消息:
  GEThttp://class/download.microtool.de:80/somedata.exe
  Host:download.microtool.de
  Accept:*/*
  Pragma:no-cache
   Cache-Control:no-cache
  Referer:http://class/download.microtool.de/
  User-Agent:Mozilla/4.04[en](Win95;I;Nav)
  Range:bytes=554554-
  上例第一行表示HTTP客户端(可能是浏览器、下载程序)通过GET方法获得指定URL下的文件。棕色的部分表示请求头域的信息,绿色的部分表示通用头部分。
  Host头域
  Host头域指定请求资源的Intenet主机和端口号,必须表示请求 url的原始服务器或网关的位置。HTTP/1.1请求必须包含主机头域,否则系统会以400状态码返回。
  Referer头域
  Referer头域允许客户端指定请求uri的源资源地址,这可以允许服务器生成回退链表,可用来登陆、优化cache 等。他也允许废除的或错误的连接由于维护的目的被追踪。如果请求的uri没有自己的uri地址,Referer不能被发送。如果指定的是部分uri地址,则此地址应该是一个相对地址。
  Range头域
  Range头域可以请求实体的一个或者多个子范围。例如,
  表示头500个字节:bytes=0-499
  表示第二个500字节:bytes=500-999
  表示最后 500个字节:bytes=-500
  表示500字节以后的范围:bytes=500-
  第一个和最后一个字节:bytes=0-0,-1
  同时指定几个范围:bytes=500-600,601-999
  但是服务器可以忽略此请求头,如果无条件GET包含Range请求头,响应会以状态码206(PartialContent)返回而不是以200(OK)。
  User- Agent头域
  User-Agent头域的内容包含发出请求的用户信息。

  响应消息
  响应消息的第一行为下面的格式:
   HTTP-VersionSPStatus-CodeSPReason-PhraseCRLF
  HTTP-Version表示支持的HTTP版本,例如为HTTP/1.1。Status-Code是一个三个数字的结果代码。Reason-Phrase给Status-Code提供一个简单的文本描述。Status-Code主要用于机器自动识别,Reason-Phrase主要用于帮助用户理解。Status-Code的第一个数字定义响应的类别,后两个数字没有分类的作用。第一个数字可能取5个不同的值:
  1xx:信息响应类,表示接收到请求并且继续处理
  2xx:处理成功响应类,表示动作被成功接收、理解和接受
  3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理
  4xx:客户端错误,客户请求包含语法错误或者是不能正确执行
  5xx:服务端错误,服务器不能正确执行一个正确的请求
  响应头域允许服务器传递不能放在状态行的附加信息,这些域主要描述服务器的信息和Request-URI进一步的信息。响应头域包含Age、Location、Proxy- Authenticate、Public、Retry-After、Server、Vary、Warning、WWW-Authenticate。对响应头域的扩展要求通讯双方都支持,如果存在不支持的响应头域,一般将会作为实体头域处理。
  典型的响应消息:
   HTTP/1.0200OK
  Date:Mon,31Dec200104:25:57GMT
   Server:Apache/1.3.14(Unix)
  Content-type:text/html
   Last-modified:Tue,17Apr200106:46:28GMT
  Etag:"a030f020ac7c01:1e9f"
  Content-length:39725426
   Content-range:bytes554554-40279979/40279980
  上例第一行表示HTTP服务端响应一个GET方法。棕色的部分表示响应头域的信息,绿色的部分表示通用头部分,红色的部分表示实体头域的信息。
  Location响应头
  Location响应头用于重定向接收者到一个新URI地址。
  Server响应头
   Server响应头包含处理请求的原始服务器的软件信息。此域能包含多个产品标识和注释,产品标识一般按照重要性排序。

  实体
  请求消息和响应消息都可以包含实体信息,实体信息一般由实体头域和实体组成。实体头域包含关于实体的原信息,实体头包括Allow、Content-Base、Content-Encoding、Content-Language、 Content-Length、Content-Location、Content-MD5、Content-Range、Content-Type、 Etag、Expires、Last-Modified、extension-header。extension-header允许客户端定义新的实体头,但是这些域可能无法未接受方识别。实体可以是一个经过编码的字节流,它的编码方式由Content-Encoding或Content-Type定义,它的长度由Content-Length或Content-Range定义。
  Content-Type实体头
  用于向接收方指示实体的介质类型,指定HEAD方法送到接收方的实体介质类型,或GET方法发送的请求介质类型Content-Range实体头
  Content-Range实体头
  用于指定整个实体中的一部分的插入位置,他也指示了整个实体的长度。在服务器向客户返回一个部分响应,它必须描述响应覆盖的范围和整个实体长度。一般格式:
   Content-Range:bytes-unitSPfirst-byte-pos-last-byte-pos/entity-legth
  例如,传送头500个字节次字段的形式:Content-Range:bytes0-499/1234如果一个http消息包含此节(例如,对范围请求的响应或对一系列范围的重叠请求),Content-Range表示传送的范围,Content-Length表示实际传送的字节数。
  Last- modified实体头
  指定服务器上保存内容的最后修订时间。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值