Script de uma solicitação de cabeçalho HTTP com netcat

Estou tentando brincar com o netcat para saber mais sobre como o HTTP funciona. Eu gostaria de escrever parte disso no bash ou no Perl, mas encontrei uma pedra de tropeço no início dos meus teste

Se eu executar o netcat diretamente no prompt e digitar uma solicitação HEAD, ela funcionará e eu recebo os cabeçalhos do servidor da Web que estou investigand

Isso funciona

    [romandas@localhost ~]$ nc 10.1.1.2 80
    HEAD / HTTP/1.0

    HTTP/1.1 200 OK
    MIME-Version: 1.0
    Server: Edited out
    Content-length: 0
    Cache-Control: public
    Expires: Sat, 01 Jan 2050 18:00:00 GMT

    [romandas@localhost ~]$

Mas quando coloco as mesmas informações em um arquivo de texto e as alimento para o netcat através de um pipe ou via redirecionamento, em preparação para scripts, ele não retorna os cabeçalho
O arquivo de texto consiste na solicitação HEAD e em duas novas linhas:

HEAD / HTTP/1.0

Enviar a mesma informação viaec ou printf também não funcion

$ printf "HEAD / HTTP/1.0\r\n"; |nc -n 10.1.1.2 80
$ /bin/echo -ne 'HEAD / HTTP/1.0\n\n' |nc 10.1.1.2 80

Alguma idéia do que estou fazendo de errado? Não tenho certeza se é um problema do bash, um problema de eco ou um problema do netca

Verifiquei o tráfego via Wireshark e a solicitação bem-sucedida (digitada manualmente) envia a nova linha à direita em um segundo pacote, enquanto os métodos eco, printf e arquivo de texto mantêm a nova linha no mesmo pacote, mas não sei ao certo o que causa esse comportamento.

questionAnswers(5)

yourAnswerToTheQuestion