什么是gRPC
HTTP/2是什么
在正式讨论gRPC为什么选择HTTP/2之前,我们先来简单了解下HTTP/2。
HTTP/2可以简单用一个图片来介绍:
可以看到:
HTTP/1里的header对应HTTP/2里的 HEADERS frame
HTTP/1里的payload对应HTTP/2里的 DATA frame
目前很多网站都已经跑在HTTP/2上了,包括alibaba。
gRPC over HTTP/2
准确来说gRPC设计上是分层的,底层支持不同的协议,目前gRPC支持:
gRPC over HTTP2
gRPC Web
但是大多数情况下,讨论都是基于gRPC over HTTP2。
HTTP2.0和1.0区别?
如果系统首屏同一时间需要加载的静态资源非常多,但是浏览器对同一域名的tcp 连接数量是有限制的(chrome 为6 个) 超过规定数量的tcp 连接,则必须规定数量的TCP连接,则必须要等到之前的请求收到响应后才能继续发送,而HTTP2 则可以在一个tcp 连接中并发多个请求没有限制,在一些网络较差的环境开启HTTP2性能提升尤为明显