新的一年,项目也要带着发展的眼光往前走,得跟上潮流,当然前提是自己真的用的上。 用的上用不上都得先简单了解下。

2月下旬Google发布了首个基于HTTP/2的RPC框架GRPC,它是基于HTTP/2的,所以先了解下它,后续等深入研究了再回头说说GRPC。

What’s new in HTTP/2?

is binary, instead of textual

HTTP/2基于二进制而不是文本,二进制协议解析起来效率会更高,而且不那么容易出错,此外原来基于HTTP/1.x协议程序可以用多种方式解析消息体, 但是HTTP/2只有一种方式,这点对实现者来说负担更轻点。

is fully multiplexed, instead of ordered and blocking

HTTP/1.x实际上是一个请求一个连接,因此浏览器为了提高页面的加载速度都会开多个连接,但是这也是有限制的(不同的浏览器不一样)。 太多的连接带来的是互联网上更多的拥塞和占用了更多的资源,这本身是低效而且是不公平的(对其他协议来说)。

HTTP/2的一个重要目的是让浏览器和服务器之间只建立一个连接,用一个连接实现了并行的请求处理,这就是multiplexing。

因为基于二进制所以telnet无法使用HTTP/2。

can therefore use one connection for parallelism

上面已经提到了,HTTP/2只允许浏览器和服务器之间建立一个连接,用一个连接实现并行,减少TCP连接数。

uses header compression to reduce overhead

现在网页加载是资源密集型的,一个页面通常有很多资源要加载,每次请求的头部数据不可忽视(尤其是Cookies), 加上TCP的Slow Start机制(一种拥塞控制机制)会导致往返次数加大。压缩可以有效的减少包分组的数量,从而减少延迟,尤其是在移动端上。

因为GZIP压缩有安全性隐患,所以HTTP/2自己实现了一套压缩算法——HPACK。

allows servers to “push” responses proactively into client caches

目前服务器需要浏览器解析页面后再发送新请求来获取js,css,图片等资源。HTTP/2为了优化这个开销,可以提前将这些资源“推送”到客户端的缓存中。

目前HTTP/2的使用情况?

Github上专门有一个Wiki页跟踪了有哪些HTTP/2的实现。我们比较关心的是Google发布的GRPC。

官方文档

上述内容都是官方文档的内容,深入了解最好方式还是看官方的文档。

HTTP/2

新年新技术:HTTP/2的更多相关文章

  1. 新年新技术:MongoDB 3.0

    前一篇介绍了HTTP/2,这一篇简单介绍下3月3号发布的MongoDB 3.0. What’s new in MongoDB 3.0? 新的存储引擎WiredTiger MongoDB 3.0的存储引 ...

  2. 新年之际,盘点一些APP开发技巧

    (原文:Reader Submissions - New Year's 2015 作者:Mattt Thompson 译者:培子 校对:蓝魂) 回顾过去一年发生在我们身边的事情时,有一点不得不提:对苹 ...

  3. 新技术≠颠覆:CIO 要有战略耐心

    新技术≠颠覆:CIO 要有战略耐心 大数据,云时代,互联网思维, 物联网--最近一两年,这些字眼一次次地出现在各种大大小小的CIO会议上和他们的私下交流圈子里,作为对新技术最敏感的人群,一方面他们迫切 ...

  4. 新思想、新技术、新架构——更好更快的开发现代ASP.NET应用程序

    在博客园学习很长时间了,今天终于自己也开通了博客,准备分享一些感悟和经验.首先感谢博客园园主提供了这么好的程序员学习交流平台,也非常感谢张善友.dax.net.netfocus.司徒正美 等技术大牛的 ...

  5. 新年抢红包效果(New Year Red Packet)

    新年抢红包效果(New Year Red Packet) 晓娜的文章(微信公众号:migufe) 2016即将过去,我们将迎来新的一年2017,这里小编提前祝大家新年快乐!万事如意!那我们新年最开心的 ...

  6. 华为5G空口新技术(2015年)

    2015-03-24 长江后浪推前浪,4G建设方兴未艾,业界关于5G的讨论已如火如荼.对于每一代移动通信,空口技术都相当于王冠上的明珠. 在月初的世界移动通信大会上,华为发布了面向5G的新空口,并展出 ...

  7. 【UOJ#67】新年的毒瘤 Tarjan 割点

    #67. 新年的毒瘤 UOJ直接黏贴会炸...    还是戳这里吧: http://uoj.ac/problem/67#tab-statement Solution 看到这题的标签就进来看了一眼. 想 ...

  8. Android 2016新技术

    Android 2016新技术 版权声明:本文为博主原创文章,未经博主允许不得转载. 2016你需要了解Android有以下新兴的技术与框架,有些也许还不成熟,但是你应该去了解下,也许就是未来的方向. ...

  9. <转>iOS9 Day-by-Day:iOS开发者必须了解的iOS 9新技术与API

    iOS9 Day-by-Day是作者Chris Grant新开的一个系列博客,覆盖了iOS开发者必须知道的关于iOS 9的新技术与API,并且还进行了实际操作演练,每篇文章中相关的代码Chris都会将 ...

随机推荐

  1. MongoDB: CURD操作

    >> 创建:·db.foo.insert({"bar":"baz"}) //如果文档中没有"_id"键会自动增加一个·db.fo ...

  2. AngularJs ngIf、ngSwitch、ngHide/ngShow

    在组合这些ng指令写到一篇文章里的时候,基本是有规则的,本兽会将功能相似相近的一类整合到一篇文章,方便理解和记忆. 这篇的三个指令也都是对DOM元素的操作,页面上显示/隐藏的判断,添加/移除的判断. ...

  3. POJ 2386 Lake Counting(深搜)

    Lake Counting Time Limit: 1000MS     Memory Limit: 65536K Total Submissions: 17917     Accepted: 906 ...

  4. PHPExcel使用体会

    PHPExcel使用体会 因为毕设导师智能分配系统的需要,系负责人在管理学生和导师时,希望可以使用Excel批量导入学生和导师的信息,学长的报课系统使用的是PHPExcel的类库,于是我也抽空花了2天 ...

  5. IOS - 打印COOKIE中的 CRFSToken

    NSHTTPCookie 在iOS中使用NSHTTPCookie类封装一条cookie,通过NSHTTPCookie的方法读取到cookie的通用属性. - (NSUInteger)version; ...

  6. django_restframework_angularjs

    用Django Rest Framework和AngularJS开始你的项目 作者:Kevin Stone原帖:Getting Started with Django Rest Framework a ...

  7. JS-鼠标经过显示二级菜单

    在css处添加了border样式为了看得更清楚——源代码有一个程序漏洞,存在一个很烦人的大bug. <ul class="nav"> <li class=&quo ...

  8. BZOJ3557: [Ctsc2014]随机数

    orz神犇们 clj(pw CCfCtsC2014) zyh cjj pyx vfk 吐槽一句对拍的时候发现这几份代码输出不一样. 每个数看成模2意义下的多项式: \[M_k\equiv x^kM_0 ...

  9. Objective -C学习笔记之字典

    //字典:(关键字 值) // NSArray *array = [NSArray array];//空数组 // NSDictionary *dictionary = [NSDictionary d ...

  10. SVN cleanup操作反复失败解决办法

    今天在更新项目的时候遇到一个问题,按惯例要cleanup才能重新更新.但是很不幸,在cleanup的时候又遇到了问题! 1    svn cleanup failed–previous operati ...