Web标准:前端的原力
本文是作者根据为“360第六届前端星计划”录制的在线培训课程整理的提纲。
Web标准是构成Web基础、运行和发展的一系列标准的总称。如果把前端开发人员比喻成“孙悟空”,那么Web标准就是“如来佛的手掌”。可以毫不夸张地说:对前端从业者来说,Web标准意味着能力,代表着舞台,象征着空间,指引着发展。
Web标准并不是由一家标准组织制定,涉及IETF、Ecma、W3C和WHATWG等。本文按Web标准组织分别简述相关Web标准,为前端学习Web标准提供指导。
IETF
IETF,全称Internet Engineering Task Force(互联网工程任务组),成立于1986年。Internet其名的TCP/IP协议由IETF标准化。
1991年,Web发明人Tim Berners-Lee总结了其Web服务器和浏览器中实现的HTTP协议,也就是HTTP 0.9:
HTTP 0.9全文不到700个单词,定义了最简单的浏览器与服务器通信获得HTML页面的协议。这个协议只定义了GET请求。
随着Web的迅速流行,很多Web服务器在0.9版基础上增加了扩展。为了把这些扩展及时记录下来,IETF成立HTTP Working Group(HTTP WG)着手制定HTTP/1.0。1996年5月,IETF发布了一份RFC(Request for Comments,征求意见稿):RFC 1945。IETF的RFC可以接受为正式标准,也可以作为参考文档。RFC 1945就是一份参考文档(也就是HTTP/1.0):
- HTTP/1.0:https://tools.ietf.org/html/rfc1945
HTTP/1.0增加了HEAD和POST方法。增加了可选的HTTP版本号。增加了HTTP头部字段描述请求和响应。增加了3位数的响应码(1xx保留,2xx成功,3xx重定向,4xx客户端错误,5xx服务器错误。)HTTP/1.0已经达到20000单词。
仅仅9个月后,1997年1月HTTP/1.1就发布了。HTTP/1.1很大程度上也是对HTTP/1.0的改进,增加了持久连接、强制服务器头部、更好的缓存和分块编码。为Web的发展奠定了基础。
1999年5月被更新版替代。2014年5月再次被更新。每次更新,之前的版本就废弃了。HTTP/1.1已经长达305页,100000单词。
HTTP/1.1:
HTTP最初是纯文本协议。HTTP消息是明文发送的。可以被任意截获和查看。HTTPS通过使用TLS(Transport Layer Security)协议对传输消息进行加密
- The Transport Layer Security (TLS) Protocol Version 1.3:https://tools.ietf.org/html/rfc8446
HTTP/1.1是纯文协议,解析不便,而且一个连接只能请求一个资源。随着HTTP请求量越来越大,这种低效越来越明显。尽管人们想出各种方案来提升效率,比如静态资源服务器分片、合并请求,但效果有限,而且会带来新问题。
HTTP/2是对谷歌SPDY的标准化。包括多路利用的字节流、请求优化级和HTTP头部压缩。2012年,HTTP Working Group注意到SPDY的成功,提议制定新版本的HTTP。2015年5月,HTTP/2也就是RFC 7450被批准为正式标准:
因为HTTP/2是基于SPDY的,在此之前,很多浏览器其实已经支持HTTP/2(Firefox、Chrome、Opera),2015年年底前所有浏览器都支持HTTP/2(Internet Explorer 11、Edge、Safari)。
目前HTTP/2通信已经占全球43.8%(https://w3techs.com/technologies/details/ce-http2)。