The Hypertext Transfer Protocol (HTTP) is used to fetch most documents on the Web. It is formally specified in RFC 2616, but this section explains everything you need to know to use LWP.
HTTP is a server/client protocol: the server has the file, and the client wants it. In regular web surfing, the client is a web browser such as Mozilla or Internet Explorer. The URL for a document identifies the server, which the browser contacts and requests the document from. The server returns either in error ("file not found") or success (in which case the document is attached).
Example 2-1 contains a sample request from a client.
Example 2-1. An HTTP request
GET /daily/2001/01/05/1.html HTTP/1.1 Host: www.suck.com User-Agent: Super Duper Browser 14.6 blank line
A successful response is given in Example 2-2.
Example 2-2. A successful HTTP response
HTTP/1.1 200 OK Content-type: text/html Content-length: 24204 blank line and then 24,204 bytes of HTML code
A response indicating failure is given in Example 2-3.
Example 2-3. An unsuccessful HTTP response
HTTP/1.1 404 Not Found Content-type: text/html Content-length: 135 <html><head><title>Not Found</title></head><body> Sorry, the object you requested was not found. </body><html> and then the server closes the connection
An HTTP request has three parts: the request line, the headers, and the body of the request (normally used to pass form parameters).
The request line says what the client wants to do (the method), what it wants to ...