一、综述
1、概念与定义
万维网(WWW,World Wide Web,简称Web。下附录1介绍了“3W”与“万维网”名字的趣事),是一个建立在互联网(Internet)上的分布式超媒体信息系统。它通过超链接将全球的文档、图片、音视频等资源相互连接,构成了一个庞大的信息网络。在我国国家标准GB/T 2900.96-2015《电工术语 计算机网络技术》中对万维网的定义是:在互联网内的一种分布式应用,它主要提供使用超文本技术的发布和查阅文档服务,也提供对不同互联网资源的访问。其通信使用HTTP作为主要协议并以客户/服务器方式进行,可详见下图1-1。
图 1-1:万维网视图
附录 1:“3W”与“万维网”名字的趣事
另外,在国家标准GB/T 32402-2015《通信名词术语 数据通信 因特网》中从不同视角对万维网的定义是: WWW主要有两层含义:第一是广泛的使用,即用户通过使用Gopher、FTP、HTTP、Telnet、USENET、WAIS和其它工具可接入所有信息源;第二是指通用的超文本服务器,它可以对文本、图像、声音文件进行混合处理。
2、产生与发展
万维网(WWW)源于科学家对信息管理的探索,这位科学家特指蒂姆·伯纳斯-李(Tim Berners-Lee),是他发明了万维网。1989年3月,在欧洲核子研究组织(CERN)工作的英国科学家蒂姆·伯纳斯-李提出了万维网的构想,向CERN提交了《信息管理的一个建议(Information Management: A Proposal)》,旨在以“分布式超文本系统”解决 CERN 科研资料跨系统、跨地点的信息管理难题。于是,他在1990年创建了第一套Web技术:由HTML(用于编写网页)、HTTP(用于传输网页)和 URL(用于定位网页)构成,目的是让全球的研究人员能够方便地共享和链接文档。
目前,Web技术的发展大致可分为两个阶段:Web 1.0阶段(约1990-2000年),此阶段的网络以“只读”为主。网页多为静态内容,用户主要是信息的被动接收者。1993年,CERN宣布万维网对所有人免费开放,极大地推动了其普及。Web 2.0阶段(约2000年至今),这是“可读写”的互动时代。以博客、社交媒体、视频网站为代表,用户成为了内容的核心生产者与传播者。万维网从一个信息发布平台,演变为一个强调交互、分享与协作的生态系统。展望未来,蒂姆·伯纳斯-李提出了“语义网”的愿景(未来的Web 3.0),旨在让数据能更智能、自动化地被机器理解和处理。需要指出的是,万维网的发展离不开万维网联盟(W3C)组织的努力与贡献,它也致力于推动Web向更开放、智能的方向发展。
欲详细了解万维网联盟(W3C)组织介绍的请进入。
3、万维网与互联网
需要强调的是,万维网(WWW)与互联网(Internet,也称因特网)是两个不同的概念,它们之间既有紧密联系又有本质的区别。可以这样理解它们间的关系:互联网是四通八达的高速公路系统,是物理基础设施;万维网是在高速公路上跑的快递运输车,运送着网页、视频等信息包裹。实质上,万维网是互联网所提供的业务之一(称为Web业务),互联网所提供的业务还包括电子邮件、即时通讯等业务。它们最根本的区别在于:互联网是硬件和协议的集合,是底层基础,支撑了万维网的应用;万维网是信息和服务的集合,是基于互联网的上层应用之一。下表1-3从多个角度分析了万维网与互联网的异同。
表 1-3:万维网与互联网的密切联系与本质区别
二、万维网的技术构成
事实上从图1-1可以静态地看出万维网(WWW)的基本构成。但从Web技术发展的视角,万维网的构成已经扩展成为一个更庞大的分层技术体系。它可分为基础核心层、前端呈现层、后端处理层和进阶扩展层。
1、基础核心层
基础核心层就是蒂姆·伯纳斯-李初次提出万维网的基本构件的构成,即包括由HTML(Hyper Text Markup Language,超文本标记语言,用于编写网页)、HTTP(Hyper Text Transfer Protocol,超文本传输协议,用于传输网页)和 URL(Uniform Resource Locator,统一资源定位符,用于定位网页),这是Web技术的三大基石。Web技术的三大构件的描述详见下表2-1。注意,HTTP通过TLS/SSL协议对通信内容进行加密,保护数据在传输过程中的安全性和完整性,这就成为HTTPS,即HTTP的安全版。
表 2-1:Web技术的三大构件的描述:HTML、HTTP 和URL
欲详细了解万维网三大构件介绍的请进入:HTML;HTTP;URL
欲更多了解TLS/SSL协议介绍的请进入。
2、前端呈现层
网页光有HTML骨架是单调的,前端呈现层是必要的,以决定网页的“样子和行为”。于是,另外两项技术的加入,形成了Web技术前端开发层的“三件套”,分别负责结构、表现和行为:层叠样式表(CSS)与JavaScript。这两项技术均为一种计算机语言,其详见下表2-2的简介。
表 2-2:CSS与JavaScript简介
3、后端处理层:
对于需要处理业务逻辑、存储用户数据、进行计算等的网站,就需要后端处理层的处理,其后端处理技术栈包括:服务器端编程语言、数据库管理系统、Web服务器软件等。这些技术栈被称为藏在幕后的“数据处理引擎”,它们作用详见下表2-3的简述。
表 2-3:后端处理层技术栈简述
4、进阶扩展层
这一层技术进一步增强了Web的智能性、交互性和平台能力。进阶扩展层常用到的技术栈包括:Web APIs、语义网与数据格式、PWA(渐进式Web应用)等,它们的简介详见下表2-4。
表 2-4:进阶扩展层技术栈简介
综上,Web技术的构成是分工明确又紧密协作的:URL 告诉你资源在哪,HTTP 规定了怎么传输,HTML 定义了内容是什么。然后,CSS 美化了内容的外观,JavaScript 让内容能够互动,而后端与数据库在幕后处理数据和逻辑。正是这套开放、标准化的技术体系,让万维网从一个简单的文档系统,演变为今天无所不能的分布式应用平台。下图2-x从宏观上展示了 Web 技术栈的层次结构,从底层的互联网基础设施,到最上层的应用。
图 2-x:万维网的分层架构示意图(横向视角)
三、万维网的服务结构
万维网(WWW)的服务结构是一个递进的层次:基础是B/S交互模型与协议栈,中间经历了从单体到分层、再到微服务的服务端组织进化,最终在应用层面演进出直接为程序提供数据的Web API服务,让万维网本身成为一个巨大的分布式计算平台。
1、基础结构
由图1-1可知,万维网采用的是客户端/服务器(C/S)服务模式,这是万维网最基本、最经典的服务模式。但就Web技术而言也称为浏览器/服务器(B/S)模式,它是C/S模式的一种特例。在这里,客户端特指Web浏览器(Browser),它负责向服务器发出请求,并将返回的HTML、图片等数据渲染成可视化的网页。服务器特指Web服务器(如Apache、Nginx),它接收到请求后,会根据请求的URL返回对应的静态文件(如.html、.jpg),或将请求转发给后端的应用程序处理。在实际结构中,浏览器和服务器之间往往还存在代理服务器和内容分发网络(CDN),它们充当“中间人”角色,可以帮服务器分担流量、加速用户访问、过滤恶意请求,让服务结构更具弹性和安全性。需要指出的是:万维网服务是基于互联网而存在,它严格依赖于分层的协议体系,即:应用层(HTTP/HTTPS)协议、传输层(TCP)协议和网络层(IP)协议,具体详见下表3-1的解释。
表 3-1:万维网服务的分层协议栈
欲详细了解Web技术服务协议栈介绍的请进入:TCP/IP协议;HTTP/HTTPS协议
2、服务端结构的演进
随着万维网从发布静态文档,发展到能处理复杂的在线交易和社交互动,服务器内部的“服务结构”也经历了巨大变化。早期(Web 1.0)的服务器是静态文件服务,仅充当文件仓库,收到URL请求后直接返回对应的文件,服务结构就是简单的文件系统。到了Web2.0时期,为了生成动态内容(如个人订单页),网站普遍采用了三层架构:表现层、业务逻辑层和数据访问层,详见下表3-2-1的描述。进而,Web服务端又出现了前后端分离与微服务的服务端结构,具体详见下表3-2-2的描述。另外,Web服务端又进化为面向程序的服务结构(Web服务,Web Services),它可以让不同平台、不同语言的软件能相互通信,带来万维网不仅服务人类,也服务程序。Web服务的核心结构有两种:SOAP和RESTful API,具体详见下表3-2-3的简述。
表 3-2-1:万维网动态时代的服务器端三层架构
表 3-2-2:万维网服务器端的前后端分离与微服务服务端结构
表 3-2-3:Web服务端的面向程序的服务结构
欲进一步了解电子邮件(E-mail)业务介绍的请进入。