几年前,当我学习NodeJS时,“http”模块已经被引入了。但我认为,从安全性和其他功能的角度来看,2021年它并不是最好的本机模块。第一个最受关注的是https。
我知道HTTPS协议是2020年网络开发的关键,但是https
包是否完全替代了http
模块,如果在某个项目中没有https
域,它会起作用吗?
发布于 2021-02-24 16:04:58
但是,
https
包是否完全替代了http
,如果在特定项目中没有https域可用,它会起作用吗?
https
并不能替代http
,因为https
特别希望在HTTPS协议下进行通信。
const req = require('https').request('http://www.example.com');
TypeError [ERR_INVALID_PROTOCOL]: Protocol "http:" not supported. Expected "https:"
at new ClientRequest (_http_client.js:152:11)
at Object.request (https.js:314:10)
at repl:1:17
at Script.runInThisContext (vm.js:120:20)
at REPLServer.defaultEval (repl.js:433:29)
at bound (domain.js:426:14)
at REPLServer.runBound [as eval] (domain.js:439:12)
at REPLServer.onLine (repl.js:760:10)
at REPLServer.emit (events.js:327:22)
at REPLServer.EventEmitter.emit (domain.js:482:12) {
code: 'ERR_INVALID_PROTOCOL'
}
是否有兴趣使https
模块具有足够的灵活性,从而也可以使用HTTP (目的是使http
模块冗余),而不管其安全性影响如何,这是Node.js的意见和最终设计决定的问题,但似乎太不可能了。对Node.js标准库的大量更改将影响到JavaScript生态系统的大部分,即使有了这样的更改,这些项目也不会如此快地依赖于http
。
在实践中,最好使用多个用户友好的HTTP客户端库中的一个,其中大多数是自动处理两个协议的。
https://stackoverflow.com/questions/66353142
复制相似问题