通过HTTP/2快速、安全地冲浪

来源 :CHIP新电脑 | 被引量 : 0次 | 上传用户:king_wda
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  HTTP是一个落后的网络协议,无法适应目前的网络应用环境,它既不安全,也无法充分利用带宽。通过新一代的HTTP/2标准就可以解决这些问题,目前所有主流的浏览器都已经支持这一新的标准。
  每个人都曾经通过在浏览器地址栏中输入以“http://”开头的地址来访问过网站,被称为“万维网之父”的蒂姆·伯纳斯-李(Tim Berners-Lee)1991年第一次通过互联网实现网站通讯时也是如此。输入HTTP开头的地址访问网站,代表着浏览器将使用超文本传输协议和服务器连接,这是现在我们访问互联网站点的基础。目前该协议的最新版本为1.1版,而这个所谓的最新版本只是在1999年进行了一些零星优化的版本,该协议的主要缺点皆没有被修正,明显很难适应目前越来越复杂的网络应用环境。
  15年前的网站结构通常都非常简单:HTML代码和一两个图像,仅此而已。而时至今日,构成网站的对象数量已经大幅增长。除了大量的图像文件和视频、音频文件之外,还有大量需要浏览器分析的JavaScript文件以及确定页面上HTML元素显示方式的层叠样式表(CSS)。而15年来从来就没有为此进行适当调整的HTTP 1.1协议完全无法有效地传输这种结构复杂的网页。其后果是,浏览器和网站之间的HTTP通信经常出现空转,浏览器打开网页的速度比实际可以实现的速度慢得多。无论网络的下行速度是5Mb/s还是20Mb/s,速度的提高对于浏览器打开网站的速度并没有产生影响。
  新版本的HTTP/2协议可以解决这一问题,在支持HTTP/2的浏览器上将可以实现浏览器与网站服务器之间的实时交互,减少服务器的响应时间,明显可以加快打开网页的速度。
  HTTP 1.1阻碍互联网发展
  现在是时候推行新的HTTP协议了,1.1版本的问题根深蒂固,与传输控制协议的交互过程从一开始就已经存在着严重的问题。TCP负责数据包的传输工作,能够灵活地处理路由器超载拒绝数据包和数据包传输出现错误等问题。因而,当浏览器需要与网站建立连接并传输数据时,最佳的方式是建立一个TCP连接,并一直通过该连接不断地传输数据。
  然而,HTTP 1.1协议的通信模式极其简单,该协议在网络通信的过程中建立了TCP许多不必要的连接:当浏览器请求访问一个网站并且得到网站服务器的响应时,浏览器将首先发出一个GET命令,请求目标地址的索引HTML文件,服务器将浏览器需要的HTML文件发送给浏览器,浏览器分析该文件,并根据HTML代码中的内容,请求所有其他的相关文件,例如网页的图像、图标、字体、音频、视频、样式表和脚本,为了加快速度,浏览器将打开8个并行的TCP连接,同时加载各种对象,为每个对象建立连接,然后发送GET命令。
  这将导致严重的问题,因为每一个TCP连接都需要经过协商、握手等过程建立连接,然后服务器才能够将数据发送到通过HTTP协议访问的浏览器。在浏览器尝试获取的对象数目较多的情况下,大量的连接将导致服务器负载过大,连接的质量将受影响,出现响应时间延迟等问题。另外,在浏览器获取大量的数据后,未必能够马上进行处理,因为浏览器可能仍在处理前一批数据中需要大量计算的数据,例如运行脚本程序。任务将逐渐堆积起来,这就是所谓“线头堵塞(Head of Line)”。如果TCP数据包在传输过程中丢失,那么浏览器需要再次请求发送这些数据包,这个问题更是雪上加霜。
  有几个技巧可以降低HTTP 1.1这一缺陷的影响。首先网页制作人员可以尽量用一个大的图片代替多个小图像,其次可以将CSS代码和JavaScript脚本直接嵌入到网页中,尽可能地减少HTTP请求的数量。类似的措施可以减少连接的数量,但是在一些情况下却又可能增加线头堵塞的概率。例如,当人们浏览新闻网站并希望通过刷新来加载新的内容时,因为HTTP1.1只有在浏览器中可以触发重新加载而不允许服务器将数据主动推送到浏览器,所以在这种情况下HTTP1.1需要一个新的请求建立TCP连接,服务器再次执行完整的文件传输。而理想的情况应该是服务器只将已改变的代码发送到浏览器,而这只有在HTTP/2中才有可能实现。
  HTTP/2协议的推送选项
  新版本的HTTP协议旨在解决1.1版本存在的问题,对于上面我们提到的问题,在浏览器和服务器之间新协议采取了不同的通信方式:当浏览器与服务器的连接建立后,不再是只有浏览器可以请求数据,服务器也可以推送数据到浏览器上。这不仅能够更快地加载网站的刷新内容,而且在首次访问网站时的加载速度同样能够有所提高。
  和HTTP1.1一样,HTTP/2开始时也建立一个TCP来连接传输数据,但此后则采用不同的方法。HTTP/2将从这个单一的连接中传输全部数据,由于服务器能够推送数据,所以浏览器不再需要根据网页的代码请求脚本文件和样式表,服务器将把它们发送到浏览器。这种机制减少了大量往返的请求和连接,消除了线头堵塞的隐患。由于新协议的定义围绕着数据包的结构,所以通过HTTP/2的复用功能,浏览器可以提供已经建立的连接发送新的请求,服务器将继续通过该连接发送数据包到浏览器。而HTTP 1.1无法做到这一点,每个分组具有文本格式的标题以及随后的主体与内容。
  HTTP/2只建立一个连接,通过它的数据流可以不中断地传输数据,并且浏览器与服务器之间可以打开任意数量的数据流同时发送数据,经由这些数据流传输往返的数据。流传输的可以是任意文件类型的文件,每个数据流通过接收号码来识别,来自不同数据流的数据可以由服务器进行混合,传输到浏览器之后再进行编译。
  首先传输重要数据
  更重要的是HTTP/2为每一个数据流设置了优先级别,在HTTP 1.1,浏览器并不知道哪些数据是快速勾画一个网站最重要的数据,该协议不发送任何有关这方面的信息。它唯一进行分析的是HTML代码中需要哪些样式表和脚本文件,而HTTP/2的所有数据流都有优先级别,所以浏览器可以首先处理具有最高优先级的数据流。通过HTTP/2的这个“小把戏”,上面曾经提到的嵌入代码等网页制作技巧已经不再需要。   在数据流中,所有数据被打包成一个一个的消息来发送,每一个消息又被分成若干帧。每一个消息由头部帧以及随后的数据帧组成,消息可以传送文件、请求和信息,因此,一个消息可以包含多个帧,也可以只包含一个帧,并具有数据流的优先级别。HTTP/2还可以通过标准定义的数十种类型的控制帧交换信息,可以通过它们调节数据流,例如传递服务器的信息或者报告浏览器正忙而无法处理更多的数据流。
  减少不必要的开销
  HTTP 1.1的报头数据量较大,每次传输需要占用500至800个字节,如果再加入Cookie,报头尺寸将快速增长到几千个字节。这将是一个非常大的额外开销,尤其是在传输的对象比较小的情况下,例如本身只有几KB的图标。此外,HTTP报头频繁重复一些不必要的旧信息,例如地址、日期或连接信息等基本上都是多余的,因为浏览器和服务器在第一次建立连接时已经获得了这些信息。除此之外,目前HTTP的报头仍采用文本格式,并且没有经过压缩,这又造成了更多不必要的额外开销。而HTTP/2报头在压缩后通过二进制代码发送,在二进制代码中,规定哪些字节包含报头信息,软件可以更轻松地对其进行分析。HTTP/2同时还避免了频繁传输重复信息的问题:浏览器和服务器将维护一个已经收到的报头信息表,传输的只有新的信息。
  HTTP/2标准正式成为全面应用的互联网规范可能还需要几年的时间,但是它的实施进展非常迅速。Google已经走在前列:该公司一直致力于HTTP协议的更新换代,5年前,Google已经推出了一款名为SPDY的Web协议,这也是目前HTTP/2的基础。在2013年,互联网工程任务组(IETF)已经采用SPDY 2.0作为新HTTP协议第一稿的模板。2014年11月15日IETF发布了HTTP/2草案,并在2015年年初提交最终版本。
  目前,所有主流的浏览器已经开始支持新的标准。如果我们使用最新的Chrome或Firefox的版本,可以使用SPDY协议进行浏览,也可以手动激活HTTP/2。我们也可以在Windows 10预览版的Internet Explorer 11中使用HTTP/2,而其他Windows版本也将可以从微软已经筹备很长时间的Internet Explorer 12中使用HTTP/2。与此同时,苹果也终于在Safari 8中开始支持SPDY,因为很多流行的Web服务正计划切换到HTTP/2协议。
  自动升级到HTTP/2
  不过,切换到HTTP/2的服务器目前仍比较少,其结果是,浏览器即使激活HTTP/2,首次联系远程站点时也需要使用HTTP 1.1,在条件允许的情况下,再执行协议的升级。目前,浏览器使用一个加密的HTTPS连接用于请求升级,通过应用层协议谈判(ALPN)激活HTTP/2。如果成功升级到HTTP/2,那么将可以获得更快和更安全的浏览速度。新的协议接下来也将可以用于未加密的连接,越来越多的浏览器可以通过旧的HTTP 1.1协议提供一种升级机制。在这种机制下,浏览器将在首次联系服务器时发送一个请求改变HTTP版本的报头,如果服务器接受请求,那么接下来将自动从HTTP 1.1切换到HTTP/2。
  切换到HTTP/2的小网站目前数量相对比较少,但是热门的Web服务对此都很重视。除了Google以外,Twitter和Facebook也已经切换到HTTP/2,或者至少开始支持SPDY 3.1。这是因为HTTP/2不仅有利于用户,由于服务器不必再应付大量额外的TCP连接请求的轰炸,所以服务器的负载也将大幅降低。目前,主要的服务器系统也都已经支持HTTP/2,其中包括Apache和Nginx等开源系统。除此之外,接下来的Java版本也将支持HTTP/2。
  作为用户,我们可以在浏览网站的过程中,通过浏览器的开发工具查看和分析数据传输,了解当前的网站是否成功通过HTTP/2或SPDY连接。但是即使已经成功切换到HTTP/2,目前,大部分网站仍然无法为用户提供应有的快速体验。这是因为要发挥HTTP/2应有的性能,网站开发人员还需要调整自己的网站。现如今的商业网站大多通过很多外部来源加载代码,浏览器需要为每一个来源建立新的TCP连接,对于原本就需要为每一个对象建立连接的HTTP 1.1来说没有什么不同,不会因而出现延迟,但是对于已经优化了的HTTP/2,将无法充分发挥其通过一个连接接收一切数据的功能。因而,用真正切换到HTTP/2并充分体验新协议所带来的性能提升,还有许多事情需要做,需要很多的时间。不过,这并不奇怪,毕竟HTTP/2是一个全新的协议。
其他文献
Wi-Fi标准IEEE 802.11ac可以实现更快的速度和覆盖更大的范围,下面,CHIP将测试当前的31款AC无线路由器和适配器,并介绍相关的知识,大家可以使用这些路由器和适配器升级自己的家庭网络。  新的IEEE 802.11ac WLAN标准可以解决许多问题:在短距离内它的速度可以高达数百Mb/s,和使用有线连接的千兆以太网的速度一样快。而即便是穿过墙壁进行较远距离的传输,它也比当前使用的其
期刊
富士施乐DocuPrint M118系列多功能一体机采用A4规格,主要针对桌面使用而设计,其中根据不同用户的具体需求,M118这一系列分为M118w和M118z两款。相比之下,M118z比M118w增加了传真功能及ADF翻页,而打印及扫描核心部件是完全相同的,CHIP将两款机型的评测同步进行。  打印速度方面,M118系列平台完全相同,测试成绩的差异可理解为合理误差范围内,基于激光打印的特性,M1
期刊
随着喷墨打印技术的提升,“商用喷墨”这一概念悄然兴起,依靠喷墨技术可以实现更低廉的整机购置成本和更自由的部署安装方式正成为办公市场上一道新的风景。佳能MAXIFY MB5080彩色喷墨多功能一体机就是针对小型办公需求设计的桌面打印复印传真一体机。  在打印速度方面,基于喷墨打印机的特性,针对不同规格的文档打印速度会显示出较大的区别。CHIP用于测试打印机的样张分为普通文本和图文混排两种,其中文本打
期刊
对于家庭用户来说,打印机的使用成本是最重要的问题,作为针对家用市场的设计,爱普生提供的墨仓式打印机以极其低廉的打印成本赢得了市场的认可。  此次CHIP评测的爱普生L455采用了墨仓式结构,具体到产品设计方面则将墨仓式打印与扫描复印多功能整合起来,在打印之外更能满足日常使用中的复印、扫描等需求。  低廉的打印成本作为墨仓式打印机的最大优势,在L455上也有着相同的表现。按照爱普生提供的数据,用于罐
期刊
小众情怀是一种态度,是一种深耕某一垂直需求市场的精神。小众应用,却有大市场。  周末去哪儿  工作了一周之后,约上三五好友,出去放松一下,是极好的事情。可是,去哪儿呢?周末去哪儿是一个综合各地区娱乐活动的应用,综合了音乐会、电影、集市、旅行等多项信息。适合短期出游的规划线路,可以实践一场说走就走的旅行。其中,很多项目有10个免费名额的优惠,较之同类应用是值得推荐的价值所在。  小记  日记是每个人
期刊
快要到“潮水退去就知道谁在裸泳”的时候了。IDC的2015年第一季度中国智能手机销量数据刚刚出炉,占据市场前三位的苹果、小米和华为仍保持着40%~60%的年比年同比高速增长,总计市场份额接近40%。但是,这个季度是中国智能手机市场6年来的首次衰退,而且幅度不小,为4.3%,市场份额损失最大的莫过于三星和联想。  不过也在这个月,三星和联想开启了新产品上市模式,早先在MWC上先后亮相的各自旗舰产品逐
期刊
Windows 7深受大部分用户的喜爱,而Windows 8却被唾弃,即将到来的Windows 10是否仍延续着Windows操作系统所谓的“隔代危机”魔咒?在Windows 10前途未卜之际,CHIP对上述系统进行了测试,或许我们能够从中看出一些端倪。  微软的Windows用户都深知一点:当微软尝试大幅度地修改自己的操作系统时,结果通常都是差强人意的,而且微软对于类似的尝试乐此不彼,这导致了所
期刊
P系列是华为冲击高端市场的先锋型产品,数年前它就背负起改变华为手机品牌形象的重任。Mate 7系列的大卖,令华为的高端战略信心倍增,P8在这条路上走得更为极致。  P8有着令人爱不释手的直线条超薄机身,其正反两面平直,没有为了6.4mm的薄机身而让摄像头突起。虽然它在视觉上棱角分明,但是经过精细切割的边缘辅以阳极氧化着色、磨砂处理的全金属机身表面,很好地解决了全金属CNC工艺常见的硌手、划伤、污损
期刊
通过OpenPGP,我们可以轻松地加密上传到云存储服务的文件,同时也能够对电子邮件和在线发送的信息进行签名和加密,确保自己保存在云端的文件安然无恙,确保电子邮件不会被截取和篡改。  通过Bitlocker功能我们可以加密硬盘,防止未经授权的人访问我们的硬盘。但是我们通过互联网传输的数据,如果不经过加密,可以说是毫无安全可言的,不仅入侵在线服务站点的黑客可以获取这些信息,而且数据传输过程中经过的每一
期刊
我们的无线网络能够有多快?无线网络的性能并不能够简单地通过所使用的标准和设备标称的数值进行判断,连接网络的不同设备将有着不同的表现,通过下面的两个免费工具我们可以准确地检测其性能。  普通的无线网络测量工具通常只是通过信号强度和接收磁场的强度来确定网络的性能,但是对于我们来说,真正有意义的是通过该网络传输数据的速度,而要检测这一数值,我们需要使用两台电脑同时连接到网络上,并使用两个免费的工具进行测
期刊