HTTP超文本传输协议应用讲解1.1(中文完整版).doc
《HTTP超文本传输协议应用讲解1.1(中文完整版).doc》由会员分享,可在线阅读,更多相关《HTTP超文本传输协议应用讲解1.1(中文完整版).doc(116页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、HTTP超文本传输协议-HTTP/1.1中文版摘要超文本传输协议(HTTP)是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议。它是一种通用的,不分状态(stateless)的协议,除了诸如名称服务和分布对象管理系统之类的超文本用途外,还可以通过扩展它的请求方式,错误代码和报头来完成许多任务。HTTP的一个特点是数据表示方式的典型性和可协商性允许独立于传输数据而建立系统。在1990年WWW全球信息刚刚起步的时候HTTP就得到了应用。HTTP的第一个版本叫做HTTP/0.9,是一种为互联网原始数据传输服务的简单协议。由RFC 1945定义的HTTP/1.0进一步完善了这个协议。它允许消
2、息以类似MIME的格式传送,包括有关数据传输的维护信息和关于请求/应答的句法修正。但是,HTTP/1.0没有充分考虑到分层代理,高速缓存的作用以及对稳定连接和虚拟主机的需求。并且随着不完善的进程应用的激增,HTTP/1.0迫切需要一个新的版本,以便使两个通信应用程序能够确定彼此的真实性能。这里规定的协议叫做“HTTP/1.1.这个协议与HTTP/1.0相比,要求更为严格,以确保各项功能得到可靠实现。实际的信息系统除了简单的检索外,要求更多的功能性(functionality),包括查找(search),前端更新(front-end update)和注解(annotation)。HTTP允许可扩
3、充的方法集和报头集以指示请求的目的47。它是建立在统一资源标识符(URI)3提供的地址(URL)4和名字(URN)上20,以指出方法应用于哪个资源的。消息以类似于一种叫做多用途网络邮件扩展(MIME)7 的互联网邮件的格式传送。HTTP也是用于用户代理之间及代理/网关到其他网络系统的通用通信协议,这样的网络系统可能由SMTP,NNTP,FTP,Gopher和WAIS协议支持。这样,HTTP允许不同的应用程序对资源进行基本的超媒体访问。1.3 术语本说明用到了若干术语,以表示HTTP通信中各参与者和对象扮演的不同角色。连接(Connection)为通信而在两个程序间建立的传输层虚拟电路。消息(M
4、essage)HTTP通信中的基本单元。它由一个结构化的八比特字节序列组成,与第4章定义的句法相匹配,并通过连接得到传送。请求(Request)一种HTTP请求消息,参看第5章的定义。应答(Response)一种HTTP应答消息,参看第6章的定义。资源(Resource)一种网络数据对象或服务,可以用第3.2节定义的URI描述。资源可以以多种表现方式(例如多种语言,数据格式,大小和解决方案)或其他不同的途径获得。实体(Entity)作为请求或应答的有效负荷而传输的信息.一个实体包含报头形式的维护信息和消息体形式的内容,由第7节详述.表示方法(Representation)一个应答包含的实体是由
5、内容协商决定的,如第12章所述.一个特定的应答状态所对应的表示方法可能有多个.内容协商(Content Negotiation)为请求服务时选择适当表示方法的机制(mechanism),如第12节所述.任何应答里实体的表示方法都是可协商的(包括出错应答).变量(Variant)在任何给定时刻,与一个资源对应的表示方法可以有一个或更多.每个表示方法称作一个变量.使用变量这个术语并不必然意味着资源是由内容协商决定的.客户机(Client)为发送请求建立连接的程序.用户代理(User agent)初始化请求的客户端程序.常见的如浏览器,编辑器,蜘蛛(网络穿越机器人),或其他的终端用户工具.服务器(S
6、erver)同意连接以便通过发回应答为请求提供服务的应用程序.任何给定的程序都有可以既做客户端又做服务器;我们使用这些术语仅指特定连接中程序完成的任务,而不是指通常意义上程序的性能.同样,任何服务器都可以基于每个请求的性质扮演原服务器,代理,网管,或者隧道等诸角色之一。原服务器(Origin server)给定的资源驻留或创建的地方.代理服务器( Proxy)一个既做服务器又做客户端的中介程序.,其用途是代表其他客户发送请求.请求在内部得到服务,或者经过一定的翻译转至其他服务器.一个代理服务器必须能同时履行本说明中客户端和服务器要求.“透明代理”(transparent proxy)是一种除了
7、必需的验证和鉴定外不修改请求或相应的代理.“非透明代理”(non-transparent proxy)是一种修改请求或应答以便为用户代理提供附加服务的代理,附加服务包括类注释服务,媒体类型转换,协议简化,或者匿名滤除等.除非经明确指出,HTTP代理要求对两种代理都适用.网关(gateway)为其他服务器充当中介的服务器.与代理服务器不同,网关接收请求,仿佛它就是被请求资源所在的原服务器;提出请求的客户可能觉察不到它正在同网关通信.一个在两个连接之间充当盲目中继(blind relay)的中间程序.一旦有效,隧道便不再被认为是HTTP通信的用户,虽然隧道可能已经被HTTP请求初始化了.当两端的中
8、继连接都关闭的时候,隧道不再存在.高速缓存(Cache)一个程序应答信息的本地存储和控制此信息存储、检索和删除的子系统,一个高速缓冲存储器存储应答为的是减少对将来同样请求的应答时间和网络带宽消耗,任一客户或服务器都可能包含一个高速缓存,但高速缓存不能应用于一个充当隧道的服务器.可缓存(Cacheable) 如果一个高速缓存允许存储应答信息的一份拷贝运用于应答后继请求的拷贝,一个应答就是可缓存的.用来确定HTTP应答的缓存能力(cacheability)的规则在13节中有定义.即使一个资源是可缓存的,也可能对一个高速缓存能否将缓存拷贝用于某特定请求存在附加的约束.直接(first-hand) 如
9、果一个应答直接到来并且没有缘于原服务器,或若干代理服务器的不必要的延时,那么这个应答就是直接的.如果它的有效性已经被原服务器直接认证,那么这个应答也同样是第一手的.明确终止时间(explicit expiration time) 原服务器预算一个实体在无需进一步确认的情况下不再被高速缓存返回的时间.探索终止时间(heuristic expiration time) 当没有外在的终止时间可利用时, 由高速缓存所指定的终止时间.年龄(Age) 一个应答的年龄是从它被发送,或被原服务器成功确认到现在的时间.保鲜寿命(Freshness lifetime)一个应答生成和过期之间的时间长度.保鲜(Fre
10、sh) 如果一个应答的年龄还没有超过保鲜寿命,它就是保鲜的.陈旧(Stale) 一个应答的年龄已经超过了它的保鲜寿命,就是陈旧的.语义透明(semantically transparent)当它的使用除了改善性能外既未影响请求客户机也未影响原服务器时, 高速缓存对于某特定的应答就是工作于语义透明方式了.当高速缓存语义透明时,客户恰好收到与原服务器直接处理请求后得到的应答(除了逐段转接的报头部分)完全相同的应答。有效性判别器(Validator) 一个用来查找一个高速缓存记录是否是一个实体的等效拷贝的协议元素(例如,一个实体标记(entity tag)或最终更改时间(Last-Modified
11、time).上游/下游(upstream/downstream)上游和下游描述了消息的流动:所有消息都从上游流到下游.向内/向外(inbound/outbound)向内和向外指的是消息的请求和应答路径:向内即移向原服务器,向外即移向用户代理.14 总体操作HTTP协议是一种请求/应答协议。 与主机建立连接后,客户以请求方法,URI和协议版本的形式向服务器发送请求,继以类MIME信息,其中包括请求修改,客户信息和可能的正文内容。服务器用包括消息协议版本和成功或错误代码的状态进行应答,继以包括服务器信息,实体维护信息和可能的实体内容的类MIME消息。HTTP和MIME之间的关系如附录19.4节所阐
12、述。大部分的HTTP通信由用户代理引发,由应用到一些原服务器上资源的请求构成。最简单的情形,可以经用户代理(UA)和原服务器(O)之间的单一连接(v)完成。请求链-用户代理(UA)-单一连接(v)-原服务器(O) UA-v-A-v-B-v-C-v-O UA-v-A-v-B-C-O -应答链并不是所有的应答都能有效地缓存,一些请求可能含有修改量,对缓存动作有特殊的要求。缓存动作和缓存应答的HTTP要求将在第13节定义。实际上,目前万维网上有多种结构和配置的高速缓存和代理被实验或使用。这些系统包括节省越洋带宽的全国代理层,广播或多点通信缓存接口, 通过CD-ROM分配子缓存数据的机构,等等。HTT
13、P系统应用在宽频带连接的企业局域网中,通过PDAs的低耗无线连接和断续连接的访问。HTTP1.1的目标是支持各种各样的应用配置,引进协议结构满足那些需要较高可靠性,可以排除故障或至少指示故障的网络应用的要求。HTTP通信在通常发生在TCP/连接上。默认端口是TCP 80,不过其它端口也可以使用。在互联网或其他网络上,这并不妨碍HTTP应用在其他协议的顶端。http仅仅期望可靠的传输;任何提供这种保证的协议都可以使用;协议传输数据单元的HTTP/1.1请求和应答结构的映象已经超出了本说明书的范围。在http/1.0中,大部分的实现为每个请求/应答交换使用了新连接。而http/1.1中,一个连接可
14、以用于一个或更多请求/应答交换,虽然连接可能会因为各种原因中断(见第8.1节)。3.3 日期/时间格式3.3.1 完整日期历史上的HTTP应用一直允许三种不同的表示日期/时间印记的格式:Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036Sun Nov 6 08:49:37 1994 ; ANSI Cs asctime() format第一种格式是作为Internet标准提出来的,它表示一个由RFC 1
15、123 8(RFC 8229的升级版本)定义的固定长度的子集.第二种格式使用比较普遍,但是基于废弃的RFC 850 12,需要(应该)用四位数表示年份.对日期值进行语法分析的HTTP/1.1客户和服务器必须接受所有三种格式(为了同HTTP/1.0兼容),虽然它们必须只产生RFC 1123格式以在头域里表示HTTP日期值.注:鼓励日期值的接收者在接受可能由非HTTP应用发来的日期值时要坚定,这种非HTTP应用有时是通过代理/网关到SMTP或NNTP检索或张贴消息.所有的HTTP日期/时间印记都必须毫无例外的以格林威治平均时间(GMT)表示.为了HTTP,GMT完全等同于UTC(协调世界时间).这
16、在前两种形式里用三个字母的时区缩写-GMT的蕴含来表示,并且读取ASC时间格式时必须先被假定.HTTP日期区分大小写,除了在语法中作为SP特别包括的LWS外,一定不能包括额外的LWS. HTTP-date = rfc1123-date | rfc850-date | asctime-date rfc1123-date = wkday , SP date1 SP time SP GMT rfc850-date = weekday , SP date2 SP time SP GMT asctime-date = wkday SP date3 SP time SP 4DIGIT date1 = 2D
17、IGIT SP month SP 4DIGIT ; day month year (e.g., 02 Jun 1982) date2 = 2DIGIT - month - 2DIGIT ; day-month-year (e.g., 02-Jun-82) date3 = month SP ( 2DIGIT | ( SP 1DIGIT ) ; month day (e.g., Jun 2) time = 2DIGIT : 2DIGIT : 2DIGIT ; 00:00:00 - 23:59:59 wkday = Mon | Tue | Wed | Thu | Fri | Sat | Sun we
18、ekday = Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday month = Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec注意:HTTP对日期/时间印记格式的请求仅仅应用在协议流里.客户和服务器不必为了用户简报,请求记录及其他而使用这些格式.3.3.2 Delta秒一些HTTP头域收到消息后,允许以十进制整数秒表示的时间值. delta-seconds = 1*DIGIT3.4 字符集HTTP使用的关于术语字符
19、集的定义和MIME中所描述的一样.本文档中的术语字符集指一种用一个或更多表格将一个八字节序列转换成一个字符序列的方法.注意另一方向的无条件转换是不需要的,在这种转换里,并不是所有的字符都能在一个给定字符集里得到,并且字符集可能提供多个八进制序列表示一个特定字符.这个定义将允许各种字符编码方式,从简单的单表格映射如US-ASCII到复杂的表格交换方法如ISO-2022的技术里所使用的.然而,与MIME字符集名字相关联的定义必须充分说明从八字节变换到字符所实现的映射.特别的,使用外部轮廓信息来决定精确映射是不允许的.注:这里使用的术语字符集更一般的被称作一种字符编码.不过既然HTTP和MIME使用
20、同样的注册表,共用术语是很重要的.HTTP字符集用不区分大小写的标记表示.完全标记集合由IANA字符集注册表19定义. charset = token尽管HTTP允许用任意标记作为字符集的值,任何在IANA字符集注册表里有预先确定值的标记必须表示该注册表定义的字符集.对那些IANA定义的字符集,应用应该限制使用字符集.实现者应该注意IETF字符集的要求3841.3.4.1 失踪字符集一些HTTP/1.0软件将没有字符集参数的内容类型头错误的理解为接收者应该猜猜.若发送者希望避免这种情况,可以包含一个字符集参数,即使字符集是ISO-8859-1;当知道不会使接收者混淆时,也应该这样做.不幸的是,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- HTTP 超文本 传输 协议 应用 讲解 1.1 中文 完整版
限制150内