title: Questions about gRPC support in web browsers and how they utilize HTTP2
body: <p>Upon discovering gRPC, I stumbled across <a href="https://blog.stevensanderson.com/2020/01/15/2020-01-15-grpc-web-in-blazor-webassembly/" rel="noreferrer">this blog post</a></p>
  <blockquote>
  <p>Why isn’t everyone already using gRPC in their SPAs?</p>
  <p>Traditionally it’s not been possible to use gRPC from browser-based
  applications, because gRPC requires HTTP/2, and browsers don’t expose
  any APIs that let JS/WASM code control HTTP/2 requests directly.</p>
  <p>But there is a solution! gRPC-Web is an extension to gRPC which makes
  it compatible with browser-based code (technically, it’s a way of
  doing gRPC over HTTP/1.1 requests). gRPC-Web hasn’t become prevalent
  yet because not many server or client frameworks have offered support
  for it… until now.</p>
  <p>ASP.NET Core has offered great gRPC support since the 3.0 release. And
  now, building on this, we’re about to ship preview support for
  gRPC-Web on both server and client. If you want to dig into the
  details, here’s the excellent pull request from James Newton-King
  where it’s all implemented.</p>
  </blockquote>
  <p>There is some good information here, but the post is around a year old at this point.</p>
  <p>There are also some major pushes <a href="https://visualstudiomagazine.com/articles/2020/06/23/grpc-web-for-net.aspx" rel="noreferrer">from Microsoft</a> with .NET and Blazor technology recently.</p>
  <p>It looks like <a href="https://github.com/grpc/grpc-web" rel="noreferrer">grpc-web</a> is pretty well maintained and always adding a lot of language support, so that's something to keep an eye on... but as I understand it grpc-web is still built to operate over HTTP1.1?</p>
  <p>For me, another question that still remains <em><strong>why</strong></em> HTTP2 is not supported through browser APIs, to which I cannot find any documentation on.</p>
  <p>I would love to start using gRPC, but am also concerned about the cons that might come with it.</p>
  <p>Thank you for any explanations to my lack of understanding.</p>
  <p>Note there is a slightly related question on SO about this <a href="https://stackoverflow.com/questions/52212455/why-do-browsers-not-support-grpc">here</a>, to which the answers were not totally comprehensive and older.</p>