Node.js 节点中的HTTPS TLS设置

Node.js 节点中的HTTPS TLS设置,node.js,tls1.2,Node.js,Tls1.2,今天我浏览了我的代码库,其中设置服务器的部分发现了以下几行: var https = require('https'); https.globalAgent.options.secureProtocol = 'TLSv1_2_method'; function createHttpsServer(app) { var https = require('https'); var fs = require('fs'); const options = { s

今天我浏览了我的代码库,其中设置服务器的部分发现了以下几行:

var https = require('https');
https.globalAgent.options.secureProtocol = 'TLSv1_2_method';

function createHttpsServer(app) {
    var https = require('https');
    var fs = require('fs');
    const options = {
        secureProtocol: 'TLSv1_2_method',
        // ...
    };
    var server = https.createServer(options, app);
    return server;
}
对我来说,这看起来像是代码重复,我不知道为什么它们会做不同的事情(或者它们会做什么?)

我的一位同事告诉我,最上面的一个用于控制NodeJS发出的HTTPS请求中的TLS,这反过来让我们可以访问
HTTPS.agent
,它用于所有与客户端HTTP请求相关的事情

这还与.NET世界中的
ServicePointManager
进行了比较

那么,这两种方法都有不同的作用吗?在某些情况下,我们的代码会:

var server = protocol === 'https' ? createHttpsServer(app) : createHttpServer(app);
这不是在一天结束时使用同一台服务器吗

var server = protocol === 'https' ? createHttpsServer(app) : createHttpServer(app);

上面这一行创建了相同的服务器,唯一的区别是,如果协议是“https”,它将在https服务器上运行(这需要SSL证书),而如果协议是http,它将在http服务器上运行。

是的,我理解。我的意思是第一位代码与第二位代码之间的差异。如果要使用的服务器将使用相同的设置,为什么要写两次呢?第一行有什么不同吗?第一行肯定与另一行不同。。查看您的应用程序正在安全层上启动。因此,该应用程序不会启动两次,但将是同一个应用程序。您可以稍后更改配置中的设置,以使用http服务在本地主机上启动服务器,并使用一些不同的设置(如端口等)