The internet is an integral part of our daily lives. We would be lost without the internet at work, and we depend upon it to guide us to a good restaurant or hotel on our holidays. None of this would be possible without internet protocols. TCP/IP, DHCP, DNS, HTTP and many other internet protocols have been around for the last 20 years. Even more amazingly, they have changed only very little.
The largest part of the “visible” web has always been running on the Hypertext Transfer Protocol known as HTTP. HTTP/1.0 was introduced in May 1996 as RFC 1945. A few months later, HTTP/1.1 was released as RFC 2616. Since then, the protocol received some minor improvements, but stayed mainly the same.
In a fast-living environment such as the internet, 20 years of staying almost the same feels like several lifetimes. In their impact, protocols are comparable to inventing the wheel; both have been surving their purpose in many different environments and with different technologies. The inventors of HTTP, Tim Berners Lee and his colleagues, were very smart people who did not only think of what they needed back then, but also of how the protocol might be used in the future. If you study the RFC in detail, you see that HTTP does not only offer two, four or five request methods, but eight of them. Furthermore, it has a total of 41 status codes defined.
The downside of having something that has stayed the same for such a long time is the tendency we have to forget how good something actually is. As for the wheel, we need to take care we don’t reinvent internet protocols. Although the internet is all around us, only a small minority actually understands how it works. Most of them are engineers. And even engineers might have forgotten, or they might be younger than the protocols themselves and might never have learned it in the first place.
Nowadays, we are used to very quickly building small applications with API’s and frameworks. Seemingly, there is no need to understad the basic tools. Most engineers know at least the GET and POST Request methods and some of the status codes, such as 200 or 404. But most of us don’t have a deeper understanding, even though HTTP is at the core of most of the web applications we build.
So what about the status code 418? Code 418 is part of the Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0) which was introduced as an April’s fool in 1998. Code 418 is therefore neither listed in the official RFC, nor should it be used as a status code. If it still haunts the internet, it is because we are able to use the tools to build applications, but we don’t always understand the tools themselves.
If we use a 418 code, or if we don’t know the difference between a 301 and a 302 code, we damage the internet little by little. Let’s re-learn HTTP and re-discover what it has to offer. For example, a status code that is not very well known but from my point of view is very usable is 202 (Accepted). Only by understanding internet protocols can we push them forward and be ready for HTTP/2.0, which is lurking on the horizon and will help us adapt to the new needs of internet communication.