在发现gRPC后,我偶然看到了这篇博客文章
为什么不是每个人都在他们的单页应用程序中使用gRPC呢?
传统上,无法从基于浏览器的应用程序中使用gRPC,因为gRPC需要HTTP/2,而浏览器没有公开任何API让JS/WASM代码直接控制HTTP/2请求。
但有一个解决方案! gRPC-Web是对gRPC的扩展,使其与基于浏览器的代码兼容(技术上,它是通过HTTP/1.1请求进行gRPC的一种方式)。 gRPC-Web尚未普及,因为很少有服务器或客户端框架提供对它的支持……直到现在。
自3.0发布以来,ASP.NET Core提供了出色的gRPC支持。现在,在此基础上,我们即将为服务器和客户端提供预览支持gRPC-Web。如果您想深入了解详情,请参阅James Newton-King的出色拉取请求,其中已经实现了所有内容。
这里有一些好信息,但这篇文章已经大约一年了。
最近,微软通过.NET和Blazor技术也进行了一些重要推动。
看起来 grpc-web 被很好地维护,并且一直添加了很多语言支持,所以这是值得关注的……但据我所知,grpc-web 仍然基于 HTTP1.1 运行?
对我而言,仍然有一个问题没有解决:为什么浏览器 API 不支持 HTTP2,我找不到任何文档说明。
我很想开始使用 gRPC,但也担心可能会带来的缺点。
感谢您对我理解上的任何解释。
请注意,关于此问题,SO 上有一个略微相关的问题,链接在这里,但答案并不全面且较旧。