Difference between TCP and HTTP protocol in Layman’s language
You can find tons of answers to this question. Most of them dig into the different transport layers. But here is the simplest definition which any layman can understand :
TCP is a protocol that controls reliable and smooth transfer of DATA from source host :port to a destination host:port. It takes care of in-order and reliable delivery of a BYTESTREAM of data. It does NOT interpret the bytes within the DATA. TCP also employs rate control mechanisms (cong. mgmt.) in order to use the network BW optimally while at the same time be not greedy.
HTTP on the other hand is _only_ interested in using the BYTESTREAM to demarcate it into messages between a WebServer and WebClient/browser. It used TCP to transfer the messages, so it doesn’t have to worry about sequence, reliability or worry about the size of message. There are command primitives like GET, POST, etc., for client to communicate with server and request which data it wants from the server.
To use an analogy, TCP is your Postal Service, and HTTP is your letters, words, messages, requests and commands that go into the envelopes. The Postal Service just focuses on delivering the letter to the sender..