Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用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

我的初步想法是将编码设置为没有像这样:

response.writeHead(200,{'transfer-encoding': 'none'});

这将禁用Node.JS的自动分块编码,并保持与大多数客户端的兼容性.然而,现在我已经破坏了Android 2.3客户端,因为他们只是咳嗽,窒息,当他们看到这样一个虚假的传输编码头.

修复尝试#2(我需要帮助)

当我使用http / 1.0发出请求时,服务器正确地返回没有分块编码的响应:

http/1.1 200 OK
Connection: close
...

解决了我的问题,并允许我为我所有烦恼的客户端服务一个流.我不必发送传真编码的伪造标题,我还没有指定内容多长时间.

如何强制Node.JS的http服务器始终以http / 1.0模式运行?

解决方法

为了我的目的,我发现一个简单的方法来禁用强制使用分块,使用响应对象的未记录的属性

response.useChunkedEncodingByDefault = false;

这很简单当然,依赖此属性可用于将来版本的Node.js并不是最好的.也许有一个更好的解决方案,但这对我来说是有效的.

大佬总结

以上是大佬教程为你收集整理的使用Node.JS提供HTTP / 1.0响应(未知内容长度,分块传输编码)全部内容,希望文章能够帮你解决使用Node.JS提供HTTP / 1.0响应(未知内容长度,分块传输编码)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。