- 万维网(World Wide Web)并非某种特殊的计算机网络。它是一个大规模的、联机式的信息储藏所,是运行在因特网上的一个分布式应用。
- 万维网利用网页之间的超链接将不同网站的网页链接成一张逻辑上的信息网。
- 万维网是欧洲粒子物理实验所Tim Berners-Lee最初于1989年3月提出的。
- 1993年2月,诞生了第一个图形浏览器Mosaic
- 1995年,著名的Netscape Navigator浏览器上市。
- 目前比较流行浏览器有:略
浏览器最重要的部分是渲染引擎,也就是浏览器内核。负责对网页内容进行解析和显示。
- 不同浏览器内核对网页内容的解析也有所不同,因此同一网页在不同内核的浏览器里的显示效果可能不同。
- 网页编写者需要在不同内核的浏览器中测试网页的显示效果
为了方便地访问在世界范围内的文档,万维网使用统一资源定位符URL来指明因特网上任何种类“资源”的位置。
- URL的一般形式由以下四个部分组成:
- 万维网的文档
- HTTP协议(HyperText Transfer Protocol)
HTTP定义了浏览器(即万维网客户端)怎样向万维网服务器请求万维网文档,以及万维网服务器怎样把万维网文档传送给浏览器。
- HTTP/1.0采用非持续连接方式,在该方式下,每次浏览器要请求一个文件都要与服务器建立TCP连接,当收到响应后立即关闭。
- 三报文握手,最后一个报文中带有HTTP请求报文
- 每请求一个文档就要有两倍RTT的开销。若一个网页上有很多引用对象,那么请求每一个对象都要花费2RTT的时间。
- 为了减小时延,浏览器通常会建立多个并行的TCP连接同时请求多个对象。但是这会大量占用万维网服务器的资源,特别是万维网服务器往往要同时服务大量客户的请求。这回使其负担很重。
HTTP/1.1采用持续连接方式。在该方式下, 万维网服务器在发送响应后仍保持这条连接,使同一个客户和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。这并不局限于传送同一个页面上引用的对象,而是只要这些文档都在同一个服务器上就行。
- 为了进一步提高效率,HTTP/1.1的持续连接还可以使用流水线方式工作,即浏览器在收到HTTP的响应报文之前,就能连续发送多个请求报文。这样就节省了很多时间。
HTTP报文格式:HTTP是面向文本的,其报文中的每一个字段都是以下ASCII码串,并且每个字段的长度都是不确定的。
使用Cookie在服务器上记录用户信息
- 早期万维网应用非常简单,仅仅是用户查看存放在不同服务器上的静态文档。因此HTTP协议被设计为一种无状态的协议。这样可以简化服务器的设计。
- 现在,用户可以通过万维网实现各种复杂的应用,如网上购物等,这些应用往往需要服务器能识别用户。
- Cookie提供了一种机制使得万维网服务器能够“记住”用户,而无需用户主动提供用户表示信息。也就是说,Cookie是一种对无状态的HTTP进行状态化的技术。
使用Cookie在服务器上记录用户信息
- 万维网缓存于代理服务器
- 在万维网中还可以使用缓存机制以提高万维网的效率
- 万维网缓存又称为Web缓存,可位于客户机,也可位于中间系统。位于中间系统上的Web缓存又称为代理服务器(Proxy Server)。
- Web缓存把最近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若发现这个请求于暂时存放的请求相同,就返回暂存的响应,而不需要按URL的地址再次去因特网访问该资源。
- 举例:
校园网内的主机向原始服务器请求文档,先向代理服务器发请求,若代理服务器里有,直接给了,没有,代理服务器帮他去请求一下,再由代理发给它。这样就大大减少了该链路上的通信量,因而减少了访问因特网的时延。
为了防止原始文档被更改的问题,通常代理服务器会为每个响应的对象,设置一个修改时间的字段和有效日期字段。
如果主机向代理拿一个超时的文档,代理服务器会像原始服务器发送请求,请求报文中有一个If-modified-since的首部行,原始服务器用这个时期判断是不是跟自己的一致,一致就发没更改,不一致就发最新的文档。