如何在本机Node.js中获取请求协议(https
,https
或其他内容?)
我为Express框架找到了很多这方面的文档,而不是本机Node的文档,这就是我使用的。
假设我有一个基本服务器:
var app = http.createServer(function(req, res){
var url = req.url;
console.log(url);
var headers = req.headers;
console.log(headers);
}).listen(8000);
..我向localhost:8000
我得到了日志输出:
/ <--- the request url
{
host: 'localhost:8000',
connection: 'keep-alive',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36',
accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'en-US,en;q=0.9'
}
但协议在哪里?
我知道我在本地运行服务器,但协议应该仍然是http
。
编辑:
对于上下文,我正在尝试设置http到https重定向。
如果有人请求https://example.com/foo
,我会将其重定向到https://example.com/foo
。