访问一个网页的全过程

20世纪90年代欧洲粒子物理实验室的研究人员为了研究的需要,开发出一种共享资源的访问系统,这种系统能够提供统一的接口来访问各种不同类型的信息,包括文字、图像、音频、视频信息,自此万维网www(World Wide web)诞生了,直至目前,很多公司和组织机构和个人都在万维网上建立了自己的站点。万维网是一种大规模的、联机式的信息储藏所,而这些信息源分布在全国各地,由各自的万维网服务器程序进行管理。万维网是分布式的超媒体系统,是超文本系统的扩充。所谓超文本即包含指向其他文档的链接的文本,也可以理解为,超文本由多个信息源链接成。而超媒体与超文本的区别是文档内容不同,超文本文档仅包含文本信息,而超媒体文档还包含图像、声音、动画以及视频图像等信息。

万维网以客户服务器方式工作,人们通常所说的浏览器便是在用户主机上的万维网客户程序,在浏览器主窗口上显示出的万维网文档称为网页,万维网文档所驻留的主机运行服务器程序。

访问一个网站的过程可简单概括为:客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所请求的万维网文档。
**此过程可细分为以下四个步骤:

一、输入统一资源定位符URL或用鼠标点击超链接文本。
超链接文本绑定了一个其要链接的站点对应的URL。统一资源定位符URL可比作是网络范围内的文件名。URL是与互联网相连的机器上的任何可访问对象的指针。通俗点讲所谓URL即互联网上资源的地址,只有找到对应资源在互联网上的地址,才可以对资源进行下一步的操作。URL的一般形式为<协议>://<主机>:<端口>/<路径>:这里的<协议>指出使用什么协议来获取万维网文档,现在最常用的协议就是HTTP(超文本传送协议)和FTP,而对于万维网的站点的访问要使用HTTP协议;<主机>指的是主机在互联网上的域名;对于<端口>,HTTP协议的默认端口为80,通常可以省略不写;<路径>字段是指向网站层次结构中从属页面,如果省略<路径>不写,则URL就指到互联网上某个网站上的主页。这里有关URL的书写值得注意的是,URL的<协议>和<主机>部分,字母不区分大小写。但<路径>有时要区分大小写。

二、浏览器进程把即将进行访问的站点对应的URL上的主机名(即该主机在互联网上的域名)解析为IP地址,为了进一步访问到万维网服务器上的万维网文档。
当浏览器进程需要把域名解析成IP地址时,浏览器进程首先在自己主机内查找存放最近使用域名的高速缓存,当高速缓存中找不到所要查找的域名时才使用本地域名服务器,把待解析的域名放在DNS请求报文中,以UDP用户数据报的方式发给本地域名服务器(使用UDP为了减少开销,其首部只需8个字节),主机向本地域名服务器的查询通常采用递归查询(即本地域名服务器代主机向根域名服务器查询)。本地域名服务器首先在自己高速缓存中查询,当在其高速缓存中查找不到时会向根域名服务器发起查询,本地域名服务器向根域名服务器的查询通常采用迭代查询(即根域名服务器告诉本地域名服务器下一步应该查询的域名服务器的IP地址,让本地域名服务器去查询),一代一代地迭代查询下去,直到查询到负责管理所要解析域名的权限域名服务器,该权限域名服务器以UDP用户数据报的方式把所要解析域名的IP地址返回给本地域名服务器,本地域名服务器再以UDP用户数据报的方式把结果返回给主机浏览器进程。

三、浏览器知道万维网服务器的IP地址后,便对服务器请求TCP连接,TCP报文三握手后建立TCP连接发送数据。
每个万维网站点都有一个服务器进程,它不断地监听TCP的端口80(HTTP协议的默认端口为80),以便发现有浏览器向它发出连接建立请求,一旦监听到连接建立请求便建立TCP连接,当建立TCP连接的三报文握手的前两部分完成后,浏览器便把HTTP请求报文,作为建立TCP连接的三报文握手的第三个报文的数据,发送给万维网服务器,服务器收到HTTP请求报文后,就把所请求的文档作为响应报文返回给客户,后断开连接。1997年以前使用的HTTP协议为HTTP/1.0协议,该协议采用非持续连接的方式,非持续连接即是每一次TCP连接只可以发送一次HTTP请求报文,待万维网服务器发送完这一次HTTP请求报文请求的文档和对应作为这一次HTTP请求报文回应的HTTP响应报文后便释放TCP连接。该协议的主要缺点是,每请求一个文档就要有两倍RTT的开销。假如一个主页上有很多链接的对象,每一次链接下载都要依次进行TCP连接,都会导致两倍RTT的开销。现在普遍采用的HTTP协议是HTTP/1.1协议,该协议采用的是持续连接,能够很好地解决HTTP/1.0协议产生的问题。持续连接就是万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个浏览器和万维网服务器可以继续在这条连接上传送HTTP请求报文和响应报文。HTTP/1.1协议的持续连接有两种工作方式,一种是非流水线方式和流水线方式:非流水线的特点,是浏览器在收到前一个响应后才能发出下一请求;流水线方式的特点是浏览器在收到HTTP的响应报文之前就能接着发送新的请求报文。

四、当浏览器所请求的页面发送完毕后,就可释放TCP连接,释放TCP连接的过程为四报文握手。

你可能感兴趣的:(访问一个网页的全过程)