HTTP over TCP/IP Simplified


So I was hanging out with my non-technical friend the other day and he asked something along the lines of “What is the ‘HTTP://’ part of the web URL for?”

Being a web developer, I was fairly familiar with how HTTP is just a “protocol” (rule) for how computer systems can understand each other when sending and receiving data. This obviously led to more questions about how a system can send and receive data and what exactly is HTTP’s responsibility in the grand scheme of things.

For a second, without getting too technical, I wasn’t sure how to explain this in terms that someone without a computer science background would be able to relate to.

However, after a sat for a minute trying to think of a good analogy, I think I came up with one that made sense. I started off trying to explain HTTP as a protocol on top of TCP/IP. I think a great way to think about this topic is thinking about it in real world terms of human communication. If you want to talk to someone you need them to first be able to HEAR you. Well how does that happen?

First, you generate sound from your mouth and it travels as sound waves until it interacts with the clients ear drums that “process” the sound. (This would be TCP/IP in the networking world.) However, being able to hear/process sound doesn’t mean you can UNDERSTAND the sound waves or what they are trying to communicate to the person with the listening ears. Having a language “protocol” alleviates this problem though and allows the client to understand and interpret the senders message. In the real work (and in my region) this “protocol” is the English language. In the web world this protocol is HTTP.


In the same way that a human uses the “rules/grammar”(protocol) of the English language(HTTP) to send his message to another human with his mouth/sound/ears (TCP/IP) to interpret his message–a computer uses the rules of HTTP and the communication layer of TCP/IP to communicate it’s message to a server or something listening for that message. The only way the receiving system would be able to understand the sending system is because of the protocol that they both understand (HTTP). (Just as two humans can understand each other if there is sound traveling from mouth to ear(TCP/IP) with a language they both understand (HTTP)).

Get it??? Please leave any comments on any other ways you have described this to your non-technical friends. Also suggest any improvements I could make to the analogy!

Visualization of the complete communication process:


%d bloggers like this: