Tag: http 1.0

使用Node.JS服务HTTP / 1.0响应(未知内容长度,分块传输编码)

问题 我正在通过Node.JS提供未知长度的资源。 因此,不能设置Content-Length标题。 对于HTTP 1.1,要求分块编码用于这种性质的资源。 Node.JS知道这一点,并发送我自己的数据块大小的传输编码,与以下头: HTTP/1.1 200 OK Transfer-Encoding: chunked Connection: close … 对于乖巧的客户来说,这一切都很好。 不过,我有一些不太好的客户(即Android 2.2及更早版本),我必须支持。 这些客户端不支持正确的分块传输编码。 修复尝试#1 我最初的想法是将编码设置为none : response.writeHead(200, {'Transfer-Encoding': 'none'}); 这将禁用Node.JS的自动分块编码并保持与大多数客户端的兼容性。 不过,现在我已经打破了Android 2.3+客户端,因为他们只是看到这样一个伪造的传输编docker咳嗽和呛。 修复尝试#2(我需要帮助) 当我用HTTP/1.0发出请求时,服务器正确地返回没有分块编码的响应: HTTP/1.1 200 OK Connection: close … 这解决了我的问题,使我能够为我所有的麻烦客户服务。 我不必为Transfer-Encoding发送伪造标题,而且我也不必指定内容的长度。 如何强制Node.JS的HTTP服务器始终以HTTP / 1.0模式运行?