HTTP基础介绍
上一篇 / 下一篇 2014-06-06 14:30:22 / 个人分类:网络
51Testing软件测试网1n} ]9B,b R4[
HTTP基础介绍
D}/S.F{mJ01 术语51Testing软件测试网z&P7gq;x0j,u*pu 连接(Connection):两个应用程序以通讯为目的在传输层建立虚拟电路。51Testing软件测试网?d/A ^{y1f
F3}zSw%^:k)?$V0u 消息(Message):HTTP通讯的基本单元,在连接中传输结构化的、有顺序的字节。51Testing软件测试网{'DW l D
51Testing软件测试网 {M8n&Zr1e1eoCu 请求(Request):客户端发送到服务器的请求信息包括,应用于资源的方法、资源标识符和协议版本号。51Testing软件测试网 B um)O,D.~ p]-pN
51Testing软件测试网q2i\/A xgu 响应(Response):服务器返回给客户端的信息包括,HTTP协议版本号、请求状态(如“成功”或“未找到”)和文档的MIME类型。
,I'rq+Pe({3o07]pM`9g0u 资源(Resource):由URI标识的网络数据对象或服务。51Testing软件测试网OP{CUe5_
+i]^_c4v0u 实体(Entity):作为请求或响应的载货(payload),实体包含实体标题(entity-header)和实体主体(entity-body)。51Testing软件测试网T"E)QLO#`-u \"~
0Sz,m lQ U'k0u 客户端(Client):以发送请求目的而建立连接的应用程序。
"r#jWj{#B)DJ0I2_U@R3Kc3V1h0u 用户代理(User agent):发起请求的客户端。通常是浏览器、编辑器、蜘蛛(web爬行机器人)或其它终端用户工具。
vP L Q})ya&v-`051Testing软件测试网*~j;u5dm&`%a ]k8V*Z*hu 服务器(Server):接受连接、并发送响应来服务请求的应用程序。任何特定的应用程序即可以是客户端、也可是服务器。因此服务器可充当源服务器、代理、网关、或通道
*if;E` Ie3nqZ051Testing软件测试网&c;Y2J.xkD,Du 源服务器(Origin server):驻留或创建给定资源的服务器。51Testing软件测试网O,fN+WiV iT;]S
51Testing软件测试网"w;[MF*X |u 代理(Proxy):充当客户端和服务器的中间程序,可以代替其它客户端发起请求。可由内部提供服务,或通过转换传递请求。代理必须实现客户端和服务器的要求。透明代理不修改除代理认证和鉴定外的请求或响应;非透明代理修改请求或响应来提供其它附加服务,比如媒介类型、协议精简或匿名过滤。
6R-AM,S9s,Tg7@|051Testing软件测试网C FLC6US9A:N2|u 网关(Gateway):作为其它服务器中间媒介。与代理不同,网关接受请求就好比它就是源服务器;请求的客户端不会意识到它在同网关进行通信。51Testing软件测试网T/^(s8k8Nx
51Testing软件测试网1rp3_~/?+t4n_u 通道(Tunnel):中继两个连接的中间程序。一旦激活,通道不会认为是HTTP通信参与方,尽管是由HTTP请求发起通道的。当两端的中继连接两端关闭时,通道便停止。
urf$j!a}5C0@Pb}*sZ)C0u 缓存(Cache):程序的响应消息本地存储,和控制消息存储、获取和删除的子系统。对于未来相同的请求,为了减小响应时间和网络带宽消耗,使用缓存来存储可缓存响应信息。任何客户端或服务器都可能包含缓存。
?A)e QR/i*s%C0mj,ZY;u-hk0u 可缓存(Cacheable):如果缓存允许存储响应消息的拷贝(以便回应后续的请求),就认为响应是可缓存的。51Testing软件测试网"j v_1L#d&s2H My
z1_Z8``v F2M@0u 直接地(First-hand):如果响应直接来自源服务器、而没有经过不必要的中继;或它的有效性是直接由源服务器进行检查,就认为响应是直接响应。51Testing软件测试网:m1U6[Vec:D
~]{@6V}:Y$j _F0u 明确过期时间(Explicit expiration time):源服务器认为没有进一步确认、缓存不在返回实体的时间。51Testing软件测试网ep|l/s7A:XU{%@ W7P
51Testing软件测试网x JnT1w6i/iUu 启发过期时间(Heuristic expiration time):当明确过期时间不可用时、由缓存分配的过期时间。
E zx2d1p&q5x]j`0*i@!ae!C_6M0u 年龄(Age):从源服务器发送或成功验证以来、响应的年龄。51Testing软件测试网`j,U&m0A
51Testing软件测试网 Z4P3L@Xy VW+]8`3Nu 新寿命(Freshness lifetime):响应产生和它的过期时间之间时间长度。51Testing软件测试网lhn)G&r~{
Rhr:in2PM6_0e]#^O s0u 新鲜的(Fresh):如果响应的年龄没有超过它的新寿命,响应就是新鲜的。
Ga[ |*S@0PB9x S*?pR y0u 陈旧的(Stale):如果响应的年龄已超过它的新寿命,响应就是陈旧的。
SR)Tj;PN#N MD%y02 WWW服务与HTTP协议介绍Z%j JbE3gZN6_0Web的应用层协议HTTP是Web的核心。HTTP在Web的客户程序和服务器程序中得以实现。运行在不同端系统上的客户程序和服务器程序通过交换HTTP消息彼此交流。HTTP定义这些消息的结构以及客户和服务器如何交换这些消息。在介绍HTTP之前,先来讨论一些web中的术语。
~(Ts0}c9^w051Testing软件测试网 E4|&un!}I/|GWeb页面(web page,也称为文档)由多个对象构成。对象(object)仅仅是可由单个URL寻址的文件,例如HTML文件、JPG图像、GIF图像、JAVA小应用程序、语音片段等。大多数Web页面由单个基本HTML文件和若干个所引用的对象构成。例如,如果一个Web页面包含HTML文本和5个JPEG图像,那么它由6个对象构成,即基本HTML文件加5个图像。基本HTML文件使用相应的URL来引用本页面的其他对象。每个URL由存放该对象的服务器主机名和该对象的路径名两部分构成。例如,在如下的URL中:
M*u`p8g R(k'Z051Testing软件测试网T D,oWr,owww.yesky.com/urlpath/picture.qif
|}ck(j{0I@QM'z*q;a0www.yesky.com是一个主机名,/urlpath/picture.qif是一个路径名。浏览器是Web的用户代理,它显示所请求的Web页面,并提供大量的导航与配置特性。Web浏览器还实现HTTP的客户端,因此从进程意义上可互换使用“浏览器”和“客户”两词。流行的Web浏览器有Netscape Communicator,firefox和微软的IE等。Web服务器存放可由URL寻址的Web对象。web服务器还实现HTTP的服务器端。流行的Web服务器有Apache、微软的IIS以及Netscape Enterprise Server。
0b A6c1`m;H Xl x{0L&PK$FE'Mm v%t3UR0HTTP定义Web客户(即浏览器)如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户。图1展示了这种请求-响应行为。当用户请求一个Web页面(譬如说点击某个超链接)时,浏览器把请求该页面中各个对象的HTTP请求消息发送给服务器。服务器收到请求后,以发送含有这些对象的HTTP响应消息作为响应。到1997年底,基本上所有的浏览器和Web服务器软件都实现了在RFC 1945中定义的HTTP/1.0版本。1998年初,一些Web服务器软件和浏览器软件开始实现在RFC 2616中定义的HTTP/1.1版本。HTTP/1.1后向兼容HTTP/1.0;运行1.1版本的Web服务器可以与运行1.0版本的浏览器“对话”,运行1.1版本的浏览器也可以与运行1.0版本的Web服务器“对话”。
e!q:YhCJ:k051Testing软件测试网-Az8}8g(T4po51Testing软件测试网P0|1B@p1H4s
51Testing软件测试网+~` p!h&g0n*\图1 HTTP请求与响应行为
t&Qvd9fAi(Q"`m0"L#_'\7u]2o4jU3I7E1}0HTTP/1.0和HTTP/1.1都把TCP作为底层的传输协议。HTTP客户首先发起与服务器建立TCP连接。一旦建立连接,浏览器进程和服务器进程就可以通过各自的套接字来访问TCP。客户端套接字是客户进程和TCP连接之间的“门”,服务器端套接字是服务器进程和同一TCP连接之间的“门”。客户往自己的套接字发送HTTP请求消息,也从自己的套接字接收HTTP响应消息。类似地,服务器从自己的套接字接收HTTP请求消息,也往自己的套接字发送HTTP响应消息。客户或服务器一旦把某个消息送入各自的套接字,这个消息就完全落入TCP的控制之中。TCP给HTTP提供一个可靠的数据传输服务;这意味着由客户发出的每个HTTP请求消息最终将无损地到达服务器,由服务器发出的每个HTTP响应消息最终也将无损地到达客户。从中看到分层网络体系结构的一个明显优势——HTTP不必担心数据会丢失,也无需关心TCP如何从数据的丢失和错序中恢复出来的细节。这些是TCP和协议栈中更低协议层的任务。51Testing软件测试网S |%S&f]p
3 WWW基本结构51Testing软件测试网Qb'yQ0Z1tWWW与HTTP在Internet/Intranet上的基本结构如图2所示。Web Server中包括了公共网关接口CGI,提供了与网上其他资源(包括数据库资源)的可能性,通过设计一个中间件来实现Web Server与数据库资源的连接。中间件的基本功能是:由于HTML的静态页面中包括了数据库访问的检索项,中间件把检索项转换成SQL语句访问数据库,而回送的数据库资源经中间件转换成浏览器能解释的HTML页面。
!S7Jc(Ky4} F9G0