Ответ 1
Я уверен, что выяснил, что вызывает эту ошибку:
Если нет
Content-Length
HTTP заголовок.
Есть случаи, когда этот заголовок игнорируется, особенно когда Transfer-Encoding: chunked
установлен, а затем node играет хорошо. Тем не менее, для базового доступа с node передача кодирования часто не может быть настроена на то, что хостинг-сервер не является потоковым материалом, но часто не устанавливает заголовок Content-Length
(независимо от того, соответствует ли это стандартное соответствие сомнительный, стандарт говорит, что, если он не запрещен другими правилами, этот заголовок ДОЛЖЕН быть установлен, хотя это реальные случаи, с которыми нужно иметь дело в любом случае).
Я проверил это со своим собственным локальным хостом, и когда я установил Content-Length
, node неожиданно играет хорошо.
Как упоминал @dhofstet в комментариях (и в выпуске), он нашел URL-адрес, который также нарушает node: www.cnbc.com/id/41863659/
Когда он разместил это, я проверил, и он действительно сломал http.get()
.
Я перепробовал сейчас, и во время написания url теперь выпускает заголовок Content-Length
, а чудо чудес, node больше не сбой на этом URL-адресе.
Было бы неплохо, если бы кто-то смог подтвердить это (не нужно слишком долго устанавливать локальный сервер, если у вас его еще нет, и выставлять основной ответ с настраиваемыми заголовками).