Ciao,

guarda su:

http://www.cs.tut.fi/~jkorpela/http.html
http://www.w3.org/Protocols/rfc2616/rfc2616.html

per quanto riguarda i mancati funzionamenti:

1--
direi che si tratta del fatto che nello script annunci solo lheader, ma non scrivi il file nello STDOUT.

2--
c'è una \ di troppo, mancano alcuni pezzi dell'header, e anche qui non scrivi tutto il file, mancando il ciclo while.

3--
non conosco l'header type che cerca di usare quello script.

Ciao.