伺服器头档案回响


伺服器头档案回响

文章插图
伺服器头档案回响【伺服器头档案回响】无论你何时浏览一个网页,你的电脑都会通过一个使用HTTP协定的伺服器来获取所请求的数据 。在你请求的网页显示在浏览器之前,支配网页的网站伺服器会返回一个包含有状态码的HTTP头档案 。这个状态码提供了有关所请求网页的相关条件信息 。如果一切正常,一个标準网页会收到一条诸如200的状态码 。当然我们的目的不是去研究200回响码,而是去探讨那些代表出现错误信息的伺服器头档案回响码,例如表示“未找到指定网页”的404码 。
基本介绍中文名:伺服器头档案回响
通用头域:Cache-Control
500:伺服器遇到错误
301:被永久性转移到另一个URL
200:成功请求的标準回响
头档案回响码解释实例200:成功请求的标準回响
伺服器头档案回响

文章插图
伺服器头档案回响示意图301:本网页被永久性转移到另一个URL302:请求的网页被转移到一个新的地址,但客户访问仍继续通过原始URL地址304:自从上次请求后,请求的网页未修改过,伺服器返回此回响时,不会返回网页内容404:一个404错误表明可连线伺服器,但伺服器无法取得所请求的网页500:伺服器遇到错误,无法完成请求503:由于超载或停机维护,伺服器目前无法使用http协定头档案的控制信息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 。对请求头域的扩展要求通讯双方都支持,如果存在不支持的请求头域,一般将会作为实体头域处理 。典型的请求讯息:Accept:*/*Pragma:no-cacheCache-Control:no-cacheUser-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-PhraseCRLFHTTP -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.0200OKDate:Mon,31Dec200104:25:57GMT Server:Apache/1.3.14(Unix)Content-type:text/htmlLast-modified:Tue,17Apr200106:46:28GMTEtag:"a030f020ac7c01:1e9f"Content-length:39725426上例第一行表示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实体头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实体头Last-modified实体头指定伺服器上保存内容的最后修订时间 。