我今天正在浏览我的代码库,该部分设置服务器并找到以下行:
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);
一天结束时是否会使用同一台服务器?
答案 0 :(得分:0)
var server = protocol === 'https' ? createHttpsServer(app) : createHttpServer(app);
上面的行创建了同一台服务器,唯一的区别是,如果协议为'https',它将在HTTPS服务器上运行(这需要SSL证书),而如果协议为http,它将在HTTP服务器上运行。