Well...the 1.1 is starting to be more prevalent now, the reason I chose 1.0 is because 1.1 will cause an error on older servers, but 1.0 will usually work with both...

Keep-alive that has to do with the connection state...basically what that means is that you don't have to keep reconnecting to the webserver to do another transaction...like for example, say you have a web page with 3 gifs on it...you could have 4 connections:

GET /index.html HTTP/1.0
GET /gif1.gif HTTP/1.0
GET /gfi2.gif HTTP/1.0
GET /gfi3.gif HTTP/1.0

With the keep-alive, what that means is you can, rather than tearing down the connection and opening a new one, you can issue a new request after the server responds for the original one...Its really up to you how you want to handle it, I like for scripting keeping it separate to keep up with it, which is why I have Connection: close on mine instead of COnnection: keep-alive. Also note that how you do the 'print' statements controls what it sends out int he packet...the way I have it now it sends the request all at once...but if you wanted to send GET /in in one packet and dex.html in another packet, you would just issue two print statements...no comments on why you might want to do that