新年新技术:HTTP/2
新的一年,项目也要带着发展的眼光往前走,得跟上潮流,当然前提是自己真的用的上。 用的上用不上都得先简单了解下。
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的更多相关文章
- 新年新技术:MongoDB 3.0
前一篇介绍了HTTP/2,这一篇简单介绍下3月3号发布的MongoDB 3.0. What’s new in MongoDB 3.0? 新的存储引擎WiredTiger MongoDB 3.0的存储引 ...
- 新年之际,盘点一些APP开发技巧
(原文:Reader Submissions - New Year's 2015 作者:Mattt Thompson 译者:培子 校对:蓝魂) 回顾过去一年发生在我们身边的事情时,有一点不得不提:对苹 ...
- 新技术≠颠覆:CIO 要有战略耐心
新技术≠颠覆:CIO 要有战略耐心 大数据,云时代,互联网思维, 物联网--最近一两年,这些字眼一次次地出现在各种大大小小的CIO会议上和他们的私下交流圈子里,作为对新技术最敏感的人群,一方面他们迫切 ...
- 新思想、新技术、新架构——更好更快的开发现代ASP.NET应用程序
在博客园学习很长时间了,今天终于自己也开通了博客,准备分享一些感悟和经验.首先感谢博客园园主提供了这么好的程序员学习交流平台,也非常感谢张善友.dax.net.netfocus.司徒正美 等技术大牛的 ...
- 新年抢红包效果(New Year Red Packet)
新年抢红包效果(New Year Red Packet) 晓娜的文章(微信公众号:migufe) 2016即将过去,我们将迎来新的一年2017,这里小编提前祝大家新年快乐!万事如意!那我们新年最开心的 ...
- 华为5G空口新技术(2015年)
2015-03-24 长江后浪推前浪,4G建设方兴未艾,业界关于5G的讨论已如火如荼.对于每一代移动通信,空口技术都相当于王冠上的明珠. 在月初的世界移动通信大会上,华为发布了面向5G的新空口,并展出 ...
- 【UOJ#67】新年的毒瘤 Tarjan 割点
#67. 新年的毒瘤 UOJ直接黏贴会炸... 还是戳这里吧: http://uoj.ac/problem/67#tab-statement Solution 看到这题的标签就进来看了一眼. 想 ...
- Android 2016新技术
Android 2016新技术 版权声明:本文为博主原创文章,未经博主允许不得转载. 2016你需要了解Android有以下新兴的技术与框架,有些也许还不成熟,但是你应该去了解下,也许就是未来的方向. ...
- <转>iOS9 Day-by-Day:iOS开发者必须了解的iOS 9新技术与API
iOS9 Day-by-Day是作者Chris Grant新开的一个系列博客,覆盖了iOS开发者必须知道的关于iOS 9的新技术与API,并且还进行了实际操作演练,每篇文章中相关的代码Chris都会将 ...
随机推荐
- HDU #5733 tetrahedron
tetrahedron 传送门 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) P ...
- Linux 中强大且常用命令:find、grep
在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下: find命令 f ...
- 我所了解的meta
https://github.com/hoosin/mobile-web-favorites 总况 meta 标签分两大部分:HTTP 标题信息(http-equiv)和页面描述信息(name). h ...
- java泛型中<?>和<T>有什么区别?
public static void printColl(ArrayList<?> al){ Iterator<?> it = al.iter ...
- BZOJ2458: [BeiJing2011]最小三角形
类似分治最近点对的方法乱搞一下就行. #include<bits/stdc++.h> #define N 200010 #define M (s+t>>1) using nam ...
- win8启动文件夹
进入C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp.鼠标右键选中粘贴,将软件快捷方式粘贴到启动目录 进入文件夹时路径可能是C: ...
- Java——jar命令
把*.class压缩成一个文件,这样的文件就称为jar文件. 如果想要生成jar文件,直接使用JDK中bin目录里的jar.exe就可以将所有的类文件进行压缩. 当用户得到一个jar文件后,即可通过设 ...
- Reading With Purpose: A grand experiment
Reading With Purpose: A grand experiment This is the preface to a set of notes I'm writing for a sem ...
- PInvoke和Marshal的姿势
PInvoke http://www.mono-project.com/docs/advanced/pinvoke/ https://msdn.microsoft.com/en-us/library/ ...
- Jquery实现textarea根据文本内容自适应高度
本文给大家分享的是Jquery实现textarea根据文本内容自适应高度,这些在平时的项目中挺实用的,所以抽空封装了一个文本框根据输入内容自适应高度的插件,这里推荐给小伙伴们. autoTextare ...