Servindo respostas HTTP / 1.0 com Node.JS (comprimento de conteúdo desconhecido, codificação de transferência em partes)

O problema

Eu estou servindo um recurso de comprimento desconhecido via Node.JS. Por causa disso, oContent-Length cabeçalho não pode ser definido. Para o HTTP 1.1, é necessário que a codificação em partes seja usada para recursos dessa natureza. O Node.JS sabe disso e envia meus dados com a codificação de transferência em partes por conta própria, com os seguintes cabeçalhos:

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Connection: close
...

Tudo isso é bom e bom para clientes bem comportados.No entanto, eu tenho alguns clientes não tão bem comportados (ou seja, Android 2.2 e anteriores) que devo apoiar. Esses clientes não suportam a codificação de transferência em partes corretamente.

Corrigir Tentativa # 1

Meu pensamento inicial foi definir a codificação paranone igual a:

response.writeHead(200, {'Transfer-Encoding': 'none'});

Isso desativa a codificação em partes automática do Node.JS e mantém a compatibilidade coma maioria clientes. No entanto, agora eu quebrei clientes Android 2.3 +, como eles simplesmente tossem e sufocam quando vêem um cabeçalho de codificação de transferência tão falsa.

Corrigir tentativa # 2 (onde preciso de ajuda)

Quando faço pedidos comHTTP/1.0, o servidor retorna corretamente a resposta sem codificação em partes:

HTTP/1.1 200 OK
Connection: close
...

Isso resolve meu problema e permite que eu sirva um fluxo que funcione para todos os meus clientes problemáticos. Eu não tenho que mandar um cabeçalho falso paraTransfer-Encodinge ainda não preciso especificar quanto tempo o conteúdo é.

Como posso forçar o servidor HTTP do Node.JS a sempre servir no modo HTTP / 1.0?

questionAnswers(2)

yourAnswerToTheQuestion