Have you ever wondered why gRPC requires HTTP/2? Do you sometimes mix up gRPC-Web, gRPC-Gateway, and gRPC's own JSON support? Are you unsure why some HTTP/2 proxies support gRPC well, while others don't? In this talk, we'll clear up all these questions - and more! - by diving deep into the gRPC wire protocol. Rather than a dry tour of the specification, we'll take a hands-on approach and build a simple gRPC client on top of cURL. To construct our client, we'll learn the details of gRPC's approach to message framing, compression, and error handling. From there, we'll explore the role of proxies in gRPC deployments before finishing with an introduction to the gRPC-Web protocol and HTTP transcoding. Even experienced gRPC users will leave this talk with a deeper understanding of the technology, a more varied debugging toolkit, and more confidence contributing to the ecosystem.