6.7 万维网WWW.pdf

概念

概述

  • 万维网 WWW (World Wide Web) 并非某种特殊的计算机网络
  • 万维网是一个大规模的、联机式的信息储藏所
  • 运行在因特网上的一个分布式应用
  • 万维网利用网页件的超链接将不同网站的网页链接成一张逻辑上的信息网。万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息

万维网的工作方式

  • 万维网以客户 - 服务器方式工作。
  • 浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器
  • 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档
  • 在一个客户程序主窗口上显示出的万维网文档称为页面 (page)。

image.png
image.png
image.png
image.png
万维网应用举例
访问网页
image.png

客户端向目的IP地址发送请求,服务端收到后会通过因特网发送响应报文,也就是上述的万维网文档

怎样标志分布在整个互联网上的万维网文档?
image.png

该URL就代表了该资源的位置。 我们对浏览器的页面进行另存为到本地,其文件就是其万维网的文档。

万维网的文档主要有以下文件:
image.png
万维网的文档
image.png
image.png

超文本传输协议HTTP(Hyper Transfer Protocol)

概念和传输过程

  • 在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。
  • HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。

image.png

首先客户进程会利用80端口和服务器建立TCP请求,然后通过该连接发送HTTP请求报文。

服务器收到请求报文后也会通过该连接发送HTTP响应报文。

  • 每个万维网网点都有一个服务器进程,它不断地监听 TCP 的端口 80,以便发现是否有浏览器向它发出连接建立请求。
  • 一旦监听到连接建立请求并建立了 TCP 连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应。
  • 最后,TCP 连接就被释放了。

image.png

在这种方式下,在建立阶段的第三次握手会写道HTTP请求报文进行发送,每次请求一次数据都需要花费2RTT + 文档的传输时延

image.png

HTTP报文格式

image.png

HTTP报文格式中由首部行、实体构成。

首部行中的每一个字段都由空格隔开,换行时使用换行符分隔。

首部与主体之间通过一个空行(换行符)分隔

HTTP的首部方法字段取值可能:
image.png
HTTP响应报文格式
image.png
例如:
image.png
也就是访问网页时显示出来的:image.png

使用Cookie在服务器上记录用户信息

image.png
例如:
image.png

在首次访问该网页时,服务器会返回一个Cookie标签。

用户端会将其保存在本地文件,将Cookie与IP地址对应。

此后在重新访问该网站时会在Cookie文件中检查有无该IP地址的Cookie,若有则使用该Cookie,可以有效提高效率。

万维网缓存与代理服务器

image.png
如果该请求有缓存
image.png

当校园网中的某台主机要访问因特网上的原始服务器时,会先请求代理服务器,若代理服务器存放有所请求的对象,则代理服务器会向该主机发回所包含的请求对象的响应。

如果该请求没有缓存
image.png

当校园网中的某台主机要访问因特网上的原始服务器时,请求代理服务器,若代理服务器没有所请求的对象,则代理服务器会向原始服务器发送请求。

服务器响应后,代理服务器会将其放入自己的Web缓存,再将其发给用户主机。

Web缓存命中率比较高,可以大大减少链路上的通信量,因而大大减少了访问因特网的时延。

若代理服务器存下该请求的缓存后,原始服务器该请求响应有所修改,此时若用户再次请求,在代理服务器的缓存中就是旧的响应报文了。 所以原始服务器通常会为每个响应的对象设定一个修改时间字段和一个有效日期字段

若未过期
image.png

若修改时间字段未过期,则会之间将缓存中报文封装在响应报文中发回给主机。

若过期并且代理服务器的文档和原始服务器的文档一致,原始服务器则给代理服务器发送不包含实体主体的响应
image.png

修改时间已过期,此时会向原始服务器发送一个if notifiy信号,意思是询问是否发生响应文档改变。

若没有改变,则原始服务器回送一个 NOT NOTIFY信号,代理服务器接收到后会将修改时间改为当前时间,不修改缓存中的文档,并且将缓存中的文档包装在响应报文中发送给用户主机。

若过期并且代理服务器的文档和原始服务器的文档不一致,原始服务器则给代理服务器发送封装有该文档的响应报文
image.png

若修改时间已过期,此时会向原始服务器发送一个if notifiy信号,意思是询问是否发生响应文档改变。

若改变,则原始服务器会在响应报文中附带修改后的文档,代理服务器接收到后会将修改时间改为当前时间,并且缓存中的文档进行更新,更新后,将缓存中新的文档包装在响应报文中发送给用户主机。

总结

image.png