HTTP protocol
HTTP message format
The HTTP generic message format is as follows:
<start-line>
<message-headers>
<empty-line>
[<message-body>]
[<message-trailers>]
HTTP Request message format
<request-line>: <METHOD> <request-uri> <HTTP-VERSION>
<general-headers>:
<request-headers>
<entity-headers>
<empty-line>
[<message-body>]
[<message-trailers>]

To know more about METHOD, link
HTTP Response message format
<status-line>: <HTTP-VERSION> <status-code> <reason-phrase>
<general-headers>
<response-headers>
<entity-headers>
<empty-line>
[<message-body>]
[<message-trailers>]

To know more about status-code : reason-phrase, link
Multiple HTTP request over one TCP session
Chunked transfer
<chunk-1-length>
<chunk-1-data>
<chunk-2-length>
<chunk-2-data>
...
0
<message-trailers>
Example HTTP Response Using Content-Length Header
HTTP/1.1 200 OK
Date: Mon, 22 Mar 2004 11:15:03 GMT
Content-Type: text/html
Content-Length: 129
Expires: Sat, 27 Mar 2004 21:12:00 GMT
<html><body><p>The file you requested is 3,400 bytes long and was last modified: Sat, 20 Mar 2004 21:12:00 GMT.</p></body></html>
Example HTTP Response Using Chunked Transfer Encoding
HTTP/1.1 200 OK
Date: Mon, 22 Mar 2004 11:15:03 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Trailer: Expires
29
<html><body><p>The file you requested is
5
3,400
23
bytes long and was last modified:
1d
Sat, 20 Mar 2004 21:12:00 GMT
13
.</p></body></html>
0
Expires: Sat, 27 Mar 2004 21:12:00 GMT