万维网WWW
万维网WWW(World Wide Web)并非某种特殊的计算机网络。它是一个大规模的、联机式的信息储藏所,是运行在因特网上的一个分布式应用。
万维网利用网页之间的超链接将不同网站的网页链接成一张逻辑上的信息网。
万维网是欧洲粒子物理实验室的Tim Berners-Lee最初于1989年3月提出的。
1993年2月,第一个图形界面的浏览器Mosaic
1995年著名的Netscape Navigator浏览器上市。
目前比较流行的浏览器如下:(后面是浏览器内核)
Chrome Blink
Firefox Gecko
Safari WebKit
Opera Blink
lnternet Explorer Trident
浏览器最重要的部分是渲染引擎,也就是浏览器内核。负责对网页内容进行解析和显示。
-
不同的浏览器内核对网页内容的解析也有不同,因此同一网页在不同内核的浏览器里的显示效果可能不同;
-
网页编写者需要在不同内核的浏览器中测试网页显示效果。
为了方便地访问在世界范围的文档,万维网使用统一资源定位符URL来指明因特网上任何种类“资源”的位置。URL的一般形式由以下四个部分组成:
<协议>://<主机>:<端口>/<路径>
万维网的文档
-
HTML 超文本标记语言HTML(HyperText Markup Language),使用多种“标签”来描述网页的结构和内容
-
CSS 层叠样式表CSS(Cascading Style Sheets),从审美的角度来描述网页的样式
-
JavaScript 一种脚本语言(和Java没有任何关系),控制网页的行为
超文本传输协议HTTP(HyperText Transfer Protocol)
HTTP定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及万维网服务器怎样把万维网文档传送给浏览器。
HTTP/1.0采用非持续连接方式。在该方式下,每次浏览器要请求一个文件都要与服务器建立TCP连接,当收到响应后就立即关闭连接。
-
每请求一个文档就要有两倍的RTT的开销。若一个网贝上有很多引用对家(例如图/守),B求每一个对象都需要花费2RTT的时间。
-
为了减小时延,浏览器通常会建立多个并行的TCP连接同时请求多个对象。但是,这会大量占用万维网服务器的资源,特别是万维网服务器往往要同时服务于大量客户的请求,这会使其负担很重。
HTTP/1.1采用持续连接方式。在该方式下,万维网服务器在发送响应后仍然保持这条连接,使同一个
客户(浏览器)和该服务器可以继续在区条连孩上传达石续i人IIr阴水报THW队人。-I于传送同一个页面上引用的对象,而是只要这些文档都在同一个服务器上就行。
- 为了进一步提高效率,HTTP/1.1的持续连接还可以使用流水线方式工作,即浏览器在收到HTTP的响应报文之前就能够连续发送多个请求报文。这样的一个接一个的请求报文到达服务器后,服务器就发回一个接一个的响应报文。这样就节省了很多个RTT时间,使TCP连接中的空闲时间减少,提高了下载文档的效率。
HTTP的报文格式
HTTP是面向文本的,其报文中的每一个字段都是一些ASCII码串,并且每个字段的长度都是不确定的。
使用Cookie在服务器上记录用户信息
-
早期的万维网应用非常简单,仅仅是用户查看存放在不同服务器上的各种静态的文档。因此HTTP被设计为一种无状态的协议。这样可以简化服务器的设计。
-
现在,用户可以通过万维网实现各种复杂的应用,如网上购物、电子商务等。这些应用往往需要万维网服务器能够识别用户。
-
Cookie提供了一种机制使得万维网服务器能够“记住”用户,而无需用户主动提供用户标识信息。也就是说,Cookie是一种对无状态的HTTP进行状态化的技术。
万维网缓存与代理服务器
-
在万维网中还可以使用缓存机制以提高万维网的效率。
-
万维网缓存又称为Web缓存(Web Cache),可位于客户机,也可位于中间系统上,位于中间系统上的Web缓存又称为代理服务器(Proxy Server) 。
-
Web缓存把最近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若发现这个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按URL的地址再次去因特网访问该资源。
试问:假如原始服务器的文档已修改,出现上图情况,主机请求到错误文档?
通常情况,代理服务器会为每个响应对象设定一个修改时间字段(Last-Modified)和一个有效日期字段(Expires)。没过期正常响应,过期了向原始服务器发送请求,若文档无变化,如下
若文档有变化,如下
例题:某浏览器发出的HTTP请求报文如下
GETlindex.html HTTP/1.1
Host: www.test.edu.cn
Connection: Close
Cookie: 123456
下列叙述中,错误的是
A.该浏览器请求浏览index.html B. index.html存放在www.test.edu.cn上
C.该浏览器请求使用持续连接 D.该浏览器曾经浏览过www.test.edu.cn
解析:
请求行:指明方法GET,URL,HTTP版本
首部行的开始:指明服务器的域名
告诉服务器发送完请求的文档后就可释放连接,即非持续连接;
若是持续连接方式,取值应为keep-alive,而不是Close
这是服务器为浏览器生成的Cookie识别码,表明该浏览器曾经访问过www.test.edu.cn
选C
例题:假设HTTP1.1协议以持续的非流水线方式工作,一次请求-响应的时间为RTT,rfc.html页面引用了2个JPEG小图像,则浏览器从开始建立TCP连接到收到全部内容为止,需要多少个RTT?
解析:
4个RTT