The request-string should be "GET / HTTP/1.0\r\n\r\n" to get the default page. For another page "GET /somedir/somefile.html HTTP/1.0\r\n\r\n". This will make the HTTP-server respond with a header and then the content.
The easiest way to get the default page is to skip the HTTP-version and make the request-string just "GET /\r\n". This will make the server assume a HTTP/0.9 client and just send the file without any header before it.
When writing a simple client, I would recommend sending "HTTP/1.0" as version, because then you will get the header plus have the possibility to support virtual hosts (which almost all webservers use to share many sites on one the same ip-adress), but not have to support chunked transfer mode.
For example this site requires the client to tell what site he is referring to, as the server is using virtual hosts to host several sites. A request to get the default page of amiga.org would look like this:
GET / HTTP/1.0\r\n
Host: amiga.org\r\n\r\n
Without supplying the "Host: amiga.org"-line, the webserver wont know what site you are asking for and will return some default page - try entering the
ip-adress for amiga.org in a browser and see what happens then.
\r = Carriage Return (CR = 0x0D)
\n = Line Feed (LF = 0x0A)
This page, when working, has some rather good information.
(edit): Removed errors.
/Patrik