HTTP能采用非持续性连接和持续性连接。HTTP/1.0采用的是非持续性
连接。相反的,HTTP/1.1则采用持续性连接。
非持续性连接
作为非持续性连接的一个例子,让我们来看看一张网页从服务端传输
到客户端的步骤吧。假设这张网页由一个基本的HTML文件和10张HPEG
图片组成,因此就一共有11个对象驻存于服务端。假设这个基本的HT
ML文件的URL地址为www.someSchool.edu /someDepartment/home.index.
接下来看看发生了什么:
1、HTTP客户端发起一个向服务端www.someSchool.edu的TCP连接。端口号80是HTTP服务器监听的默认端口号,通过这个端口号,服务器可以知道HTTP客户端通过HTTP索要的文件。
2、HTTP客户端通过由步骤1所建立的TCP连接所相关的socket端口向服务端发送一个HTTP请求报文。这个请求报文中包括了路径name/someDepartment/home.index(稍后,我们将会详细讨论HTTP报文)
3、HTTP服务端接收到通过由步骤1所建立的TCP连接所相关的socket端口传来的请求报文,从它的存储空间(内存或者是影盘)中取出/someDepartment/home.index的对象,将他们打包成一个响应报文,并将其通过端口发送给客户端。
4、HTTP客户端接收响应报文。TCP连接(直到客户端收到完整的响应报文TCP才会终止连接)
5、HTTP客户端收到响应报文,TCP连接中断。报文显示打包的对象是一个HTML文件。客户端从响应报文中解出这个文件,解析HTML文件,然后发现,这个文件与10张JPEG图相关。
6、为了取得那10张JPEG图,每张图的取得需重复上面的1-4步