首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >localhost:300/ localhost :443用nodejs重定向到localhost

localhost:300/ localhost :443用nodejs重定向到localhost
EN

Stack Overflow用户
提问于 2022-10-01 17:26:10
回答 2查看 66关注 0票数 0

大家好,谢谢您的答复。我有一个由nodejs提供服务的网站,我正在监听http的端口300和https的443:

代码语言:javascript
复制
const fs = require('fs');
const https = require('https');
const http = require('http');
const app = require('../app');
const env = require(`../environment/${process.env.NODE_ENV}`);

const httpServer = http.createServer((req, res) => {
  res.writeHead(301, { Location: `https://${req.headers.host.split(':')[0] + ':' + env.portHttps}${req.url}` });
  res.end();
}).listen(env.portHttp);

const options = {
  key: fs.readFileSync(env.key),
  cert: fs.readFileSync(env.cert),
};

const httpsServer = https.createServer(options, app).listen(env.portHttps);

这段代码来自一个教程,我想我不太理解它,因为我希望我的站点调用localhost:300或localhost:443,每次,google上的请求都重定向到https://localhost/,我不明白为什么。

所以很好但我想知道为什么重定向是因为..。那么为什么要调用.listen(端口)呢?

PS:我有一个带有代理的有角度的应用程序启动:

代码语言:javascript
复制
{
    "/": {
        "target": "https://localhost",
        "changeOrigin": true,
        "secure": false
    }
}

我知道这个代理的目的,我只想知道为什么会发生重定向,而我所遵循的教程并没有解释这一点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-10-01 17:31:27

您正在端口80上创建一个301 HTTP Redirect服务器,并将一个301 HTTP Redirect发送回所有请求。这些重定向工作的方法是返回状态代码301和header Location,其中包含您希望浏览器访问的位置。因此,当您访问http://localhost/abc时,您会收到301, Location: https://localhost/abc,浏览器会带您到那里。

在dev工具中,如果您转到网络选项卡并启用“保存日志”,您应该会看到重定向和实际的应用程序页面加载。

代码语言:javascript
复制
const httpServer = http.createServer((req, res) => {
  // 301 is the http status code
  // Location: ... is the header which contains where to go to
  res.writeHead(301, { Location: `https://${req.headers.host.split(':')[0] + ':' + env.portHttps}${req.url}` });
  res.end();
}).listen(env.portHttp);

在文件的底部设置https服务器,该服务器侦听端口443并为应用程序提供服务。

票数 1
EN

Stack Overflow用户

发布于 2022-10-19 16:23:14

所有此类安全(TLS)传输都使用端口443完成,端口443是HTTPS通信量的标准端口。因此,当浏览器识别443端口时,它会显示https安全锁(绿色),301是http重定向到所有请求,这是响应状态代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73920381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档