The HTTP protocol
The Hypertext Transport Protocol (HTTP) is built on top of the TCP. When you type a URL in a browser, the browser opens a TCP channel to the server (after DNS lookup, of course) and sends a HTTP request to the web server. The server, after receiving the request, produces a response and sends it to the client. After that, the TCP channel may be closed or kept alive for further HTTP request-response pairs.
Both the request and the response contain a header and an optional (possibly zero-length) body. The header is in the text format, and it is separated from the body by an empty line.
Note
More precisely the header and the body are separated by four bytes: 0x0D
, 0x0A
, 0x0D
, and 0x0A
, which are two CR
, LF
line separators. The HTTP protocol uses carriage return and line feed to terminate lines in the header, and thus, an empty line is two CRLF
following each other.
The start of the header is a status line plus header fields. The following is a sample HTTP request:
GET /html/rfc7230...