An HTTP request, is basically a stream of text. That text is broken in to three sections. 1.) The request line 2.) The headers 3.) The body.
The header is a series of name/value pairs. The pairs are separated by a return/newline sequence. Name and value are separated by the colon character. The end of the header section is marked of by two return/newline sequences together. Everything after that is considered part of the body.
Here is an example POST request (caught with the packet sniffer, TcpFlow):
Line one is the request line. Lines two through 13 are the headers. Lines fourteen and fifteen mark the end of the headers Line sixteen is the body. The line numbers were added by me.
With GET requests there is no body. [ September 06, 2006: Message edited by: Ben Souther ]
Lynette and I criss-crossed posts. Here advice about getting a browser plugin that shows the HTTP headers is excellent. It's a lot easier to learn HTTP if you can visually see the request and response information in real time as you post to your app.