HTTP
/ aitch-tee-tee-PEE /
HTTP is the language web browsers and web servers use to talk to each other. Every time you load a page, click a link, submit a form, or see an image, your browser and some server somewhere exchanged HTTP messages. The name says it: it was invented to transfer hypertext — documents with links in them — but today it carries everything from JSON data and videos to app updates.
HTTP works as a simple request/response exchange. The client sends a request — a request line naming a method and a resource ("GET /index.html"), then some header lines, then an optional body — and the server sends back a response — a status line with a status code ("200 OK"), some headers, then the body, which is usually the file or data you asked for. Crucially, plain HTTP is text you could read with your own eyes: the messages are lines of human-readable characters. HTTP runs on top of a reliable transport, traditionally TCP, so it does not worry about lost or reordered bytes — TCP handles that, and HTTP just reads and writes whole messages.
HTTP is also stateless: by design, the server does not remember anything about you between requests. Each request stands alone and must carry whatever context the server needs. That sounds limiting, but it is what lets servers handle enormous traffic — they do not have to keep a per-user memory open. Statefulness (knowing you are logged in, what is in your cart) is added back on top, with cookies and tokens. HTTP is the foundation of the web, but note that it is not the web itself: the web is the pages and links and apps; HTTP is merely the protocol that fetches them.
A minimal HTTP exchange looks like this. Request: "GET /cat.jpg HTTP/1.1" then "Host: example.com". Response: "HTTP/1.1 200 OK" then "Content-Type: image/jpeg" then "Content-Length: 50831", a blank line, then the 50831 bytes of the image. That is the whole conversation for fetching one picture.
One request, one response: a method and a resource go up, a status code and the bytes come back.
HTTP by itself is unencrypted — anyone on the path can read it. HTTPS is HTTP carried inside TLS, which adds encryption and server authentication; the HTTP messages are identical, just wrapped (TLS is the security field's topic).