http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 3010|回复: 2

[学习交流] 关于 HTTP/2,你需要知道哪些?

[复制链接]
发表于 2015-3-19 14:17:00 | 显示全部楼层 |阅读模式
观察浏览器的地址栏。看最前面的几个字母:HTTP。这是什么?它是超文本传输协议(Hypertext Transfer Protocol)的简称,这一机制是浏览器用来向服务器请求信息以及将网页呈现在屏幕上。HTTP 协议的新版本草稿于近期由负责创建因特网标准的组织发布,该组织叫做互联网工程任务小组(IETF)。这意味着自1999年投入使用的老版本 HTTP/1.1 将最终被新版本代替,它被称做 HTTP/2。这次更新改进了浏览器和服务器通讯的方式,允许更快的信息传输,同时降低所需要的自然条件。
为什么它如此重要?HTTP/1.1 自1999年投入使用以来,尽管它在过去这些年以来备受瞩目,但也的确开始不适应时代了。如今的网页包含许多不同的组件,除了标准的 HTML,比如设计元素 CSS,客户端语言 JavaScript,图像,视频和 Flash 动画。为了传输这些信息,浏览器不得不创建多个链接,每个链接都包含头文件、目的和通讯包或通讯协议的详细信息。这对于无论是分发内容的服务器还是浏览器来说,都构成了巨大的加载负担。

当越来越多的元素添加到网站里面,所有连接和所需的处理能力会导致速度变慢。至少有一点我们可以确定,人们会变得相当烦躁。我们已经越来越期待更快的网络,最短的延迟。对公司来说,网站变慢意味着损失急金钱,尤其是对于网络服务来说,载入时间越长,用户体验越差。
自从拨号上网和即时通讯蓬勃发展后,人们一直在寻找方法来加快因特网。最常见的技术之一就是缓存,将特定的信息存储在本地,而不是每次都需要重新传输所有信息。但是其他解决方案试图寻找一些技巧,比如降低图片和视频的分辨率。还有一些人花费无数小时来调整、优化代码,从而减少加载时间的几毫秒。这些方法都是有效的,但却像创可创一样。因此谷歌决定大幅度修补 HTTP/1.1 并创建 SPDY 协议,结果也是卓有成效的。总体而言,即使使用了加密技术,服务器、浏览器间的通讯使用 SPDY 也更加快速。至少,使用 SPDY 后的传输速度能够提高10个百分点,并且在某些情况下甚至能达到40%。SPDY 的成功使得这一项目后的谷歌工程师决定创建新的技术协议,这就是今天我们讲的 HTTP/2 草稿的由来。
什么是协议?你可以将协议视为一系列规则,用来管理信息是如何从一台电脑传输到另一台电脑上的。每一个协议都是不同的,但是通常他们包括头文件、有效负载和脚注。头文件包括头和目的地址以及有效负载的一些信息(数据类型、数据大小等)。有效负载里的是真实信息,而脚注则包含错误诊断的一些形式。某些协议通常支持名为”封装“的特性,这允许他们在有效负载部分包含其他协议。

你可以把它想象为使用邮件来发一封信。我们的协议就是 USPS。而这封信需要一个特定形式的目的地址,一个返回地址和编码。”有效负载“就是信的内容本身,而错误诊断就是信封上的封条。如果寄到的信封是被撕开的,并且里面没有信纸,你就明白出现问题了。

为什么 HTTP/2 更好?简单来说,HTTP/2 加载网页速度更快、省时。就酱。
下面这个发布在 HttpWatch 上的例子,显出出传输速度提高了近20%,而这仅仅是一次未完全优化的网页服务器测试(这项技术成熟还需要一段时间)。事实上,提高30%将是很常见的。

使用 HTTP 的网页加载速度例子:

HTTP/ 主要通过创建一个浏览器、服务器之间的永久连接来提高速度,而不是每个信息都创建一个连接。这显著地降低了需要传输的数据量。另外,它使用二进制来传输数据而不是文件,二进制是电脑语言。这意味着你的电脑不需要浪费时间将信息翻译为它能够理解的形式。HTTP/2 的其他特性包括”多路复用“(同时发送和接收多文本),优先级的使用(更重要的数据优先传输),压缩(将信息压缩成更小的块)以及”服务器推送“,服务器将学习猜测你下一个请求是什么,并提前发送数据。
因此我们什么时候能够享受 HTTP/2 带来的便利?HTTP/2 的使用还没有确定的日期,许多人可能已经在不知不觉中使用了这项技术。草案已在2月11日提交,将在六个月后期满(准确地说,8月15日)。在期满之前,需要再三确认并形成最终方案,名为”RFC“,或者发布经过更改的新草稿。
多说一句,我们应该意识到这个术语”RFC“,它是”Request For Comments“的简称,但是他的确是 IETF 使用的最终文件名。另外,RFC 并不是一个规定,而是一项建议:关于事物该如何设计。(是不是有点犯迷糊了?)但是,为了让协议正确运行,每个人都应该遵循以下规则:

HTTP/2 技术进入被集成到许多网络服务器和浏览器中,即使它仍然只是一个草案,例如,微软 的Win 10 技术预览版的 IE 已经支持这一技术,Chrome 也同样支持(尽管默认是关闭的,你也可以方便地打开它),火狐也在 Beta 36 以后支持这一技术。
如果我们讨论网页服务器,你应该知道Win 10 下的 IIS(Window 网页服务器)已经支持 HTTP/2,并且期待 Apache 和 Nginx 能够尽快支持。这意味着更快,而不是更慢,我们将一直使用 HTTP/2。当转变发生后,你很可能不会意识到这一点,除非你不习惯提高你经常浏览的站点的加载速度。另外,你还会在地址栏中看到”http“或”https”。所以,生活还会继续,只是更快捷。


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2015-3-19 22:47:42 | 显示全部楼层
看过帖子回复一下是个好习惯
发表于 2015-3-19 23:52:26 | 显示全部楼层
支持!学习了……
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-3 07:45

© 2014-2021

快速回复 返回顶部 返回列表