8.4.3 基于文档的中间件

现在我们已经有了一些有关网络和协议的背景知识,可以开始讨论不同的中间件层了。这些中间件层位于基础网络上,为应用程序和用户提供一致的范型。我们将从一个简单但是却非常著名的例子开始:万维网(World Wide Web)。Web是由在欧洲核子中心(CERN)工作的Tim Berners-Lee于1989年发明的,从那以后Web就像野火一样传遍了全世界。

Web背后的原始范型是非常简单的:每个计算机可以持有一个或多个文档,称为Web页面(Web page)。在每个页面中有文本、图像、图标、声音、电影等,还有到其他页面的超链接(hyperlink)(指针)。当用户使用一个称为Web浏览器(Web browser)的程序请求一个Web页面时,该页面就显示在用户的屏幕上。点击一个超链接会使得屏幕上的当前页面被所指向的页面替代。尽管近来在Web上添加了许多的花哨名堂,但是其底层的范型仍旧很清楚地存在着:Web是一个由文档构成的巨大有向图,其中文档可以指向其他的文档,如图8-35所示。

阅读 ‧ 电子书库
图 8-35 Web是一个由文档构成的大有向图

每个Web页面都有一个惟一的地址,称为URL(统一资源定位符,Uniform Resource Locator),其形式为protocol://DNS-name/file-name。http协议(超文本传输协议,HyperText Transfer Protocol)是最常用的,不过ftp和其他协议也在使用。协议名后面是拥有该文件的主机的DNS名称。最后是一个本地文件名,用来说明需要使用哪个文件。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

整个系统按如下方式结合在一起:Web根本上是一个客户机-服务器系统,用户是客户端,而Web站点则是服务器。当用户给浏览器提供一个URL时(或者键入URL,或者点击当前页面上的某个超链接),浏览器则按照一定的步骤调取所请求的Web页面。作为一个例子,假设提供的URL是http://www.minix3.org/doc/faq.html。浏览器按照下面的步骤取得所需的页面。

1)浏览器向DNS询问www.minix3.org的IP地址。

2)DNS回答,是130.37.20.20。

3)浏览器建立一个到130.37.20.20上端口80的TCP连接。

4)接着浏览器发送对文件doc/faq.html的请求。

5)www.acm.org服务器发送文件doc/faq.html。

6)释放TCP连接。

7)浏览器显示doc/faq.html文件中的所有文本。

8)浏览器获取并显示doc/faq.html中的所有图像。

大体上,这就是Web的基础以及它是如何工作的。许多其他的功能已经添加在了上述基本Web功能之上了,包括样式表、可以在运行中生成的动态网页、带有可在客户机上执行的小程序或脚本的页面等,不过对它们的讨论超出了本书的范围。