HTTP要升级 网页浏览更快速
超文本传输协议,简称HTTP,是构成万维网的关键要素。HTTP是客户端浏览器或其他程序与网页服务器之间的应用层通信协议。在Internet上的网页服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于网页访问,也可以用于其他互联网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。
超文本传输协议已经问世几十年,互联网工程指导组最近的一项通告透露十五年来的第一次重大更新——HTTP/2即将到来。
最初的HTTP协议是万维网1991年诞生时蒂姆·伯纳斯·李爵士(Sir Tim Berners-Lee)在European Organization for Nuclear Research使用的协议。
此后HTTP协议一直在完善,最终于1999年推出了HTTP1.1版本,并成为全球使用的当前标准。这些年来,网络已经发生了巨大变化,引入了图像、复杂的样式表、Javascript代码、Flash和其它嵌入元素。最初的HTTP是针对简单网页的简单协议,而不是设计来处理当前的富媒体网站。
举例来说,谷歌(微博)每秒钟要处理4万条网页搜索。面对着为数十亿的互联网用户服务的压力,谷歌的技术人员在2009年启动了名为SPDY(念作“speedy”,中文意思是快速。)项目,旨在完善HTTP协议。SPDY一开始只是供内部使用,其它需要处理繁忙网络流量的网站,比如Twitter、 Facebook、 Wordpress和CloudFlare,也使用了SPDY,结果是访问速度得到提升。
这引起了互联网工程任务组(IETF)的注意。IETF在2012年决定采用SPDY作为HTTP/2的基础。虽然谷歌带头开发了这个协议,但后续工作由IETF的开放工作组完成。谷歌最近宣布放弃自家的SPDY,转而支持即将到来的HTTP/2。
HTTP 1.1的缺点
今天的网页会产生各种请求,图像、CSS样式表、视频和其它嵌入对象、站外广告等等,一个网页可能会产生上百个请求。这给网页服务器增加了不必要的负担,并造成了网页加载速度缓慢,因为HTTP1.1只支持一个连接一个请求。
HTTP1.1对高延迟连接很敏感。这在使用手机网络的移动设备上更是个大问题,甚至高速连接都会感觉很慢。HTTP管线化让浏览器在等待回应上一个请求时发送另一个请求。虽然这在一定程度上解决了高延迟问题,但管线化容易受到自身问题的影响,大多数浏览器都默认禁用管线化。
HTTP/2的优点
HTTP/2不使用明文,而是一个二进制协议,它解析速度更快,传输更紧凑。HTTP 1.1用四种不同的方式来处理消息,HTTP/2减少到一种。
为了解决多个请求的问题,HTTP/2只允许对每个网站进行一个连接,但使用流多路复用技术将多个请求整合到一个连接。这些流也是双向的,网页服务器和浏览器可以在单个连接内同时传输数据。每个流都可以被优先,因此浏览器能够确定哪个图像是最重要的,或者在你切换浏览器标签的时候,优先一组新的数据流。
根据HTTP协议,每一个连接由一个与之前和之后的连接没有联系的请求响应对组成。意思是每一个请求必须包含关于本连接的相关信息——这部分信息在HTTP请求头中发送。随着HTTP 1.1的发展,请求头增加了新特性,变得更大。HTTP/2采用了请求头压缩技术,减小了带宽使用,加速了连接,同时也增强了安全性。
HTTP/2最后一项新增功能是服务器推送。在HTTP 1.1协议下,当服务器收到网页请求时,服务器会发回网页,但必须等到网页浏览器解析页面的HTML并请求发回HTML代码里的对象,比如图片。服务器推送允许服务器在收到网页请求时发回所有跟网页相关的资源,不再需要等待。这样将大大减少与网页连接相关的延迟。
网页版本2?
一旦网页服务器和网页浏览器开始采用HTTP/2协议——这最快可能是在几个星期之后——网页浏览体验会感觉更快。开发人员不再需要解决HTTP 1.1的局限性,工作也将更轻松。
实际上,一些流行浏览器的最新版本(Firefox v36, Chrome v40 and Internet Explorer v11)已经支持HTTP/2。对于Chrome和Firefox浏览器,HTTP/2只用于加密连接(SSL)——这和Let's ENcrypt(让我们加密)运动一起推动加密技术的广泛使用。(翼飞)