In a nutshell, HTTP is an asymmetric request-response client-server protocol. An HTTP client sends a request message to an HTTP server. The server, in turn, returns a response message. In other words, HTTP is a pull protocol in which the client pulls information from the server (as opposed to a push protocol, in which the server pushes information down to the client). Take a look at the following diagram:
HTTP is based on TCP/IP (or the Transmission Control Protocol/Internet Protocol), which provides the tools for a reliable communication exchange.
An important feature of the HTTP protocol is that it's stateless. This means that the current request has no knowledge about what happened in previous requests. This is a limitation, but you can browse a website with the illusion of being logged in. Under the covers though, what happens is that, on login...