Let’s See How an HTTP Call Works As An Example
Photo by Raghav Modi on Unsplash
Most of us would remember that one teacher or professor from school or college who could explain any complex subject in a simple language that’s easy for everyone to understand. We often think that’s just teaching skills but time and again we watch a few youtube videos or attend a conference where the speaker brilliantly explains the most complicated and boring topic in plain English that’s not just interesting but also easy to remember.
If it’s just the teaching or presentation skills that are needed to perform remarkably well in a profession then anyone with a little training could do the same. That’s not the case though, these people practice something that the rest of the folks ignore.
We will get into what’s that practice in a little while but before that let’s take an example to understand this principle a little better.
Let’s try to understand HTTP calls and see for ourselves if the same principle can be applied to all situations.
Every Programmer in today's date has either worked or heard of HTTP calls, most of the backend API calls are made using HTTP. If we had to learn HTTP calls today, how would we approach to learn this concept?
What is HTTP in simple terms?
It’s an application-level protocol built on top of TCP/IP to enable communication between a client and a server.
Clearly, that’s not a very clear definition. So let’s break down the definition into the following 4 questions.
1. What’s Client and Server?
Any computer or mobile application that asks for information is a client and the computer that provides the information is a server.
A browser is a client that asks for information every time something is searched on google. Google (company) has servers(think of it as computers that Google owns) that would return a bunch of links back to your browser and they are arranged in an orderly fashion. This is the client-server model.
2. What is meant by communication?
It’s two devices talking to each other in a language they understand. In binaries.
Computers that are miles and miles apart from each other pass information between them using a set of fiber optic cables that even cross oceans to connect continents to each other.
Binaries that we mentioned above, would actually travel in the form of electric signals, light, or radio waves.
Internet Service Provider companies would do the job of providing us the internet, that is they connect us to the rest of the computers in the world.
Photo by Nastya Dulhiier on Unsplash (Entire World is communicating with each other all the time)
3. What is the Application Level?
It's the highest level in the OSI model.
To understand this in plain English, we would need to understand what is OSI model and by the end of that topic, we would have also learned how TCP/IP works.
4. What is OSI Model and How TCP/IP works?
OSI is a framework that describes the communication functions in a network. Basically, it's a model that describes the rules of each component that works when a client (eg: browser) requests somethings from a server (eg: Twitter, Medium) and the server responds back to the client.
By now we understand that HTTP is an application-level protocol and that it's built on top of TCP/IP protocols. What that means is HTTP protocol defines how applications should communicate with the network but the actual transfer of data from one computer to another still relies on the lower level protocols.
A TCP/IP model (right side on the below image) looks a little more abstract than the OSI model.
Now that we have answered all the questions related to the definition of the HTTP protocol, let’s try to answer the old question in a new way.
Revisiting: What is HTTP in simple terms?
A protocol that makes it possible to exchange data (communicate) on the web.
The simple mind shift that the incredible teachers, presenters, professors, and we learned today is to understand any subject using First Principles. Once we understand any concept to its most basic form, teaching or explaining it to someone else becomes a child's play.
Conclusion
Learning complex technical concepts is a time taking process but breaking down the big concepts into smaller pieces helps in great understanding. With great understanding, we would learn to appreciate and enjoy all things that physics and technology have made possible in our daily lives.
Top comments (0)