MTE Explains: What Is an RFC?

You’ve probably seen the term RFC thrown around in reference to protocols and other applications that you’ve been using. Many developers include references to RFCs in the change notes to new versions of applications that they release. Why is this? What is this mysterious RFC everyone keeps talking about? As with any other seemingly obscure term on the Internet, there are explanations, but they don’t necessarily speak in a language that everyone can understand. And this is why MTE is going to take the time to explain RFCs to you!

To fully understand what an RFC is, one must also understand what gave birth to them, and why they were necessary at the time in which they were first created.

A long, long time ago, the Internet was run on a small network of computers known as ARPANET. It was a project of the United States Department of Defense. When the Internet was born, there was a need for protocols with which to communicate so that the way in which computers talk could be completely standardized. Hence, the “request for comments” (RFC) system was born.

An RFC is a published document by an organization called the Internet Engineering Task Force (IETF). RFCs hold the rules for every single protocol you use to communicate over the Web. You’ll find very familiar ones like RFC 2616 (HTTP) and RFC 3920 (XMPP, used in Facebook Messenger). All of these things are available for everyone to see on the IETF’s RFC database.


Originally, RFCs were – as the name implied – documents requesting commentary. People would be able to hold discussions on how the protocols would work better and how they may be catastrophically flawed. Today, RFCs are more of a declaration rather than a request. They simply show how everything works and that’s about it.

Put simply, many RFCs will provide the public with all the details they need to know in order to fully understand how Internet protocols work. However, not all RFCs are declarations of Internet protocols. Some of them are there to show developers what the best practices are for interacting with a protocol or even to provide information about some other general topics. Others are just jokes (like this April Fools’ RFC). Also, you won’t find every protocol on IETF’s database. A number of them (like the BitTorrent protocol) are kept in other databases.

When I was first developing programs and plugins that used the HTTP protocol, I needed a point of reference to learn how it worked. It doesn’t matter how much you know how to code; if you can’t find out how a protocol works, you can’t use it properly. The RFC I linked to above (2616) was very helpful in understanding some details.

The point I’m getting at is that RFCs can be used as a reference guide to protocols that have not yet fully been explained in simpler terms. It helps pioneers easily find the resources they need to develop the applications you love. There you have it!

If, after reading this, you still have questions about RFCs, the IETF, or any related organizations, please post them in a comment below.