相信大家对Web都有些了解,但是对Web的技术是否总感觉混乱,缺少权威解释?本篇文章主要向大家讲解各种Web技术背后标准规范的来龙去脉。让大家在学习的过程中有一颗定心丸,少一份不确定。
简介
Web的全称是World Wide Web,是互联网的子集。Web由通过浏览器显示的网页组成,这些网页通过Http协议从远端的Web Server服务器获取网页信息,从而让普通大众也能很方便的利用互联网。
我们也可以将Web理解为一种架构,一种Browser-Server(浏览器-服务器)来回交互的架构,即BS架构。这个架构从一开始简单的静态网页的轻客户端,逐步发展到现在的富客户端。这种基于浏览器生成图形界面的技术将复杂且不同API的操作系统与开发人员隔离开,有着非常高的开发效率,跨平台,且极易部署。起初是Web应用撑起了整个互联网,即使在客户端Native App风行的今天,Web应用依然有它不可动摇的地位。
W3C出现
那我们应该怎么来学习这门技术呢?如果从网上搜索,会很容易找到Web相关的教程,但是很快你就会发现,你学习的知识好像只是Web技术的其中一个版本,你写的东西在不同浏览器的不同版本中时常会有不同的表现。有些API在这个浏览器中可以运行,在另一个浏览器中就是undefined。
起初,Web技术之所以有不同的版本,是因为各大浏览器厂商都有自己的Web技术,虽然它们大体相似,但是细节上却有很多不同。那段时间的Web开发人员是痛苦的,Web网页在各个浏览器之间不能通用,用户体验很不好。各个浏览器闭门造车导致相互不兼容显然是不利于互联网的发展的。
后来一个专门制作Web相关标准的组织出现了:W3C(World Wide Web Consortium),从此各大浏览器厂商开始向标准靠拢。
WHATWG出现
直到2004年,W3C要抛弃HTML,改用基于XML的技术来代替HTML,主要浏览器厂商都不同意抛弃HTML,而他们又无法说服W3C,加之新标准的制定进程一直非常缓慢,当时几乎停滞,这些矛盾不断积聚,然后有一次W3C投票否决了Opera和Mozilla一项联合倡议,这成了压倒骆驼的最后一根稻草,两天后,一个由主要浏览器厂商的员工组成的工作组WHATWG(Web Hypertext Application Technology Working Group)宣布成立,WHATWG制定了新一代的HTML标准,一系列新的功能推出:Web Storage、Web Socket等,进展迅速。后来W3C接受了这个标准,从此Web开始蓬勃发展,Web的富客户端应用开始取代C/S架构的桌面应用。WHATWG制定的新一代HTML标准就是HTML5。
HTML和DOM被移交给WHATWG
此后W3C和WHATWG一直是独自发展,WHATWG的节奏要比W3C快很多,分歧也越来越多,到2019年,W3C终于将HTML和DOM标准的主要维护和推进工作交由WHATWG主导,至此不再有两个版本的标准存在,开发人员也终于可以少一些疑惑了。
2019年以前,我们往往会认为WHATWG上的东西是很前卫的非正式的,W3C上的内容才是正式的。但是2019年后的今天,WHATWG不再是非正式,它就是HTML和DOM的标准组织。开发人员可以少一些焦虑了。
Web技术由哪几部分组成
Web技术分为几部分,核心的是:HTML CSS DOM JavaScript HTTP。但是这里要注意的是JavaScript的标准并不属于W3C和WHATWG,而是由ECMA国际进行维护和推进。HTTP的标准则由IETF制定。
Web技术的衍生技术就相当多了:
- Web服务标准:SOAP、WSDL等
- Web应用程序标准:Service Worker、Web App Manifest等支持渐进式Web应用的技术
- SVG:可缩放矢量图
- Content Security Policy:CSP安全策略
- WebSocket 等等。
这些衍生技术有些是由WHATWG创建,后来其他标准组织也参与进来,例如WebSocket,一开始由WHATWG创建,后来则由IETF和WHATWG共同维护,毕竟WebSocket是和HTTP这种通信协议紧密相连的。
此外浏览器厂商有时还会自己实验一些新技术,例如谷歌在2009年提出了SPDY技术,作为一个协议来解决HTTP的性能问题,后来为HTTP/2的问世提供了巨大的帮助。
总结
可以看到Web技术涉及到的标准组织至少有四家:W3C、WHATWG、ECMA国际、IETF。如今的Web技术不仅存在于独立的浏览器中,还存在于移动App的内嵌Webview(也可以看作一种浏览器)中。这就是Web的现状。因此对于学习Web技术的开发人员来说,我们需要对各种标准有所了解,实时跟进各项新技术,新态势。
结束语
此篇结束。