In this chapter, we built upon what we studied previously. In essence, we moved the network stack up to the application layer. We studied some major considerations for building application layer protocols. We then looked at RPC, and in particular, gRPC, studying how it enables developers to build large-scale networked services. We then looked at a Rust crate that can be used to send emails via an SMTP server. The last few examples were on writing an FTP client and a TFTP server. Along with other application layer protocols covered elsewhere in this book, we should have a good standing in understanding these protocols.
HTTP is one text-based application layer protocol that deserves a chapter of its own. In the next chapter, we will take a closer look at it and write some code to make it work.