An HTTP request has the request line as the first line of the request. The request line starts with the HTTP method followed by a space, followed by the URI of the resource requested, a space, and then the HTTP version. The request line is terminated by a Carriage Return (CR) and a Line Feed (LF) character, as shown in below figure:
Following the request line are the request headers. The header fields are colon-separated key–value pairs, terminated by a CRLF, just like the request line. The end of the header fields is indicated by an empty field—two consecutive CRLF pairs—as shown in below figure:
Finally, following the request headers is the optional request body. Depending on the HTTP method used, the request body can be present or absent.
Following the request line are the request headers. The header fields are colon-separated key–value pairs, terminated by a CRLF, just like the request line. The end of the header fields is indicated by an empty field—two consecutive CRLF pairs—as shown in below figure: