A client-server protocol used by the World Wide Web (WWW) or any IP network (private net, intranet, extranet), for delivering content/applications to a client (typically client web browser).
HTTP protocol rides on top of a TCP Socket between client and web server (usually on TCP port 80 by default).
HTTP protocol has a set of natural "commands" which the caller sends in the request (i.e. from HTTP 1.1 (sometimes called HTTP Verbs) = GET, POST, PUT, DELETE, HEAD, OPTIONS) and an Uniform Resource Identifier (URI) a "Server,Path, and File(resource)". The URI tells the web server "which server, path, and file(resource)" and the HTTP verb tells the server what sort of request the user is requesting in each call.
The Web server will response with a "response header" where the "content type" of the "response" will be described (tells the client what sort of data the response will be and what to do with it) and of course the "response" itself.
Some HTTP responses are "cache-able" by Cache-engines, Content-engines, Proxies-caches, etc. and caching settings are in the server's "response header".