如果没有在 API 请求中指定端口号,服务器如何决定该请求是针对端口 80 还是 443

Posted

技术标签:

【中文标题】如果没有在 API 请求中指定端口号,服务器如何决定该请求是针对端口 80 还是 443【英文标题】:Without specifying a port number inside of a API request how server decided that this request is for port 80 or 443 【发布时间】:2021-07-19 18:25:00 【问题描述】:

我没有在我的 api 端点中提及端口号,但服务器如何决定使用端口 80 或 443 来处理此请求

const data = await axios.get('/api/users/currentuser');

【问题讨论】:

相对 URL 与当前页面 URL 组合以创建最终 URL。因此,如果当前页面使用 HTTPS,那么最终 URL 也将使用 HTTPS。 【参考方案1】:

nginx 中使用类似的东西:

server 
  root /var/www/html;
  
  server_name _;

# this is the react/angular fronted application endpoints
  location / 
    try_files $uri $uri/ /index.html;
  

# this is the api endpoints
  location /api 
    proxy_pass http://127.0.0.1:8000;
  

但是,您没有在问题中明确提到您是否使用 NGINX,但是您在该问题的 5 个标签之一中有 nginx,所以我假设您必须使用 NGINX,所以,我正在回答那个上下文。

【讨论】:

以上是关于如果没有在 API 请求中指定端口号,服务器如何决定该请求是针对端口 80 还是 443的主要内容,如果未能解决你的问题,请参考以下文章

如何在生产中基于 create-react-app 的项目中指定端口号?

如何在 SQL Management Studio 中指定不同的端口号?

有没有办法在nodeJS POST API请求中指定本地文件系统路径,能够使用curl而不是nodejs进行api调用

win云服务器端口号开启,tomcat启动项目localhost 拒绝了我们的连接请求。

如果响应 NGINX 中没有 Cache-Control 标头,如何缓存内容

从反向代理请求中保留协议和端口号