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.