HTTP协议(一)

WEB的应用层协议是超文本传输协议(HTTP),他是WEB的核心,HTTP协议由两部分程序实现:一个客户机程序和一个服务器程序,他们运行在不同的端系统中,通过交换HTTP报文进行会话。HTTP定义了这些报文的格式以及客户机和服务器是如何进行报文交换的。
WEB常用术语:
WEB页面(web page–文档):由对象组成。
对象(object):简单来说就是文件,如HTML文件,图片Java就小程序,视频片段等文件。这些文件可以通过一个URL地址寻址。多个WEB页面含有一个基本HTML文件(base HTML file)以及几个引用对象。例如:一个WEB页面包含HTML文本和5个JPEG图形文件,那么这个WEB页面有6个对象:一个基本HTML文件加5个图形。在基本HTML文件中通过对象的URL地址对 对象 进行引用。每个URL地址由两部分组成:存放对象的服务器主机名,对象的路径名,例如:URL地址 http://www.nsuedu.cn/img/pic.gif。www.nsuedu.cn是主机名,/img/pic.gif是路径名。因为WEB浏览器(Web brower) 实现了HTTP的客户端,所以在Web环境中,我们经常交替使用“浏览器”“客户机这个2个术语。”WEB服务器用于存储WEB对象,每个对象由URL地址寻址。WEB服务器实现了HTTP的服务器端。流行的WEB服务器有 Apache , Microsoft Internete Information Server.
这里写图片描述
HTTP定义了WEB客户机是如何向WEB服务器请求WEB页面,以及服务器如何将WEB页面传送给客户机的。—–如图2-6
当用户请求一个WEB页面(如点击一个超链接)时,浏览器向服务器发出对该页面中国所包含对象的HTTP请求报文,服务器接收请求并用包含这些对象的HTTP响应报文进行响应。
HTTP使用 TCP作为他的支撑运输层协议。HTTP客户机发出一个与服务器的TCP连接,一旦连接建立,浏览器和服务器进程就可以通过套接字接口访问TCP。 客户机的套接字接口是客户机进程与TCP连接之间的门,服务器端的套接字接口则是服务器进程与TCP连接之间的门。客户机套接字接口发送HTTP请求报文和接收HTTP响应报文。类似的,服务器也是从套接字接口接收HTTP请求报文和响应HTTP响应报文。
一旦客户机发送了一个请求报文,该报文就“脱离客户及控制”并“进入TCP的控制”。TCP为HTTP提供可靠数据传输服务。这意味着,一个客户机进程发出每个HTTP请求报文最终都能完整地到达服务器。类似的,服务器进程发出的每个HTTP响应报文最终都能完整地到达客户机。从这里可以看出分层体系结构的最大优点:HTTP协议不担心数据丢失,也不担心TCP是如何从网络的数据丢失和乱序故障中恢复的,那是TCP以及协议栈底层协议的工作。
下列现象很重要:服务器向客户端发送被请求的文件时,并不存储关于客户机的状态信息。加入某一个客户机在短短几秒内两次请求tongue一个对象,服务器并不会因为刚刚为该用户提供了该对象就不再做出反应,而是重新发送该对象。因为HTTP服务器并不保存关于客户机的任何信息,所以说HTTP是一个无状态协议(stateless protocol).WEB使用了客户机/服务器应用程序体系结构。WEB服务器总是打开的,具有一个固定的IP地址,他服务于百万计的不同浏览器。

非持久连接和持久连接

在许多因特网应用中,客户机和服务器进行长时间通信,其中客户机发出一系列请求,服务器对每个请求进行响应。根据不同的应用程序以及应用程序的使用方式,这一系列请求可以周期性地一个接一个发出,也可以间断性地发出。 当这种客户机/服务器的交互运行与TCP协议之上时,应用程序的研制者需要确定每个请求/响应对 时经一个单独的TCP连接发送,还是所有的请求及响应经相同的TCP连接发送。如果采用前一种方法,该应用程序被称为非持久连接(non-persistent connection),后一种是持久连接(persistent connection),默认方式下的HTTP采用持久连接。

非持久连接

每个TCP连接在服务器返回对象后关闭,即连接并不为其他对象而持续下来。每个TCP连接只传输一个请求报文和一个响应报文。

持久连接

非持久连接的缺点:
1.必须为每一个请求的对象建立和维护一个全新的连接。对于每个这样的连接,在客户机和服务器都要分配TCP的缓冲区和变量,这给服务器带来严重的负担。
2.每个对象的传输时延为两个RTT,一个RTT用于建立TCP,一个用于请求和接收一个对象。

在持久连接的情况下,服务器在发送响应后保持TCP连接打开。在相同的客户机与服务器之间的后续请求和响应报文可通过相同的连接进行传送。特别是一个完整WEB页面可以用单个持久TCP连接进行传送。更有甚者,位于同一台服务器的多个WEB页面在从该服务器发送给同一个客户机时,可以在单个持久TCP连接上进行。如果一个连接经过一定时间间隔(一个可配置的超时间隔)仍未被使用,HTTP服务器就关闭该连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值