数码知识屋
霓虹主题四 · 更硬核的阅读氛围

HTTP和HTTPS端口的区别与常见用法

发布时间:2026-01-18 13:50:26 阅读:199 次

平时开发网站或者调试接口,总绕不开 HTTPHTTPS。这两个协议听着熟,但它们默认用的端口你真的搞清楚了吗?别小看这数字,配错了可能连不上服务,查半天还以为代码有问题。

HTTP 默认用的是 80 端口

当你在浏览器里输入 http://example.com,其实浏览器自动帮你加上了 :80。也就是说,它真正请求的是 http://example.com:80。这个 80 就是 HTTP 的默认端口,就像快递寄到你家,默认走的是大门一样。

本地开发时,比如你用 Node.js 起了个服务:

const http = require('http');

http.createServer((req, res) => {
  res.writeHead(200);
  res.end('Hello HTTP on port 80!');
}).listen(80);

这时候访问 http://localhost 就能直接看到内容,不用写端口号。但注意:绑定 80 端口通常需要管理员权限,Windows 要以管理员身份运行,Linux 可能得加 sudo

HTTPS 默认跑在 443 端口

现在大多数网站都上 HTTPS 了,地址栏有个小锁图标。HTTPS 其实就是在 HTTP 上加了一层加密(通常是 TLS/SSL),默认端口是 443。

你访问 https://example.com,背后其实是连上了 443 端口。如果手动指定,就是 https://example.com:443。这个端口对安全通信至关重要,像网银、登录页面都靠它保护数据不被偷看。

举个本地启 HTTPS 服务的例子:

const https = require('https');
const fs = require('fs');

const options = {
  key: fs.readFileSync('server.key'),
  cert: fs.readFileSync('server.crt')
};

https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('Hello HTTPS on port 443!');
}).listen(443);

这段代码需要证书文件,启动后就能通过 https://localhost 访问。

能不能换别的端口?当然可以

虽然 80 和 443 是默认,但不是死规定。开发时我们经常用 3000、8080、5001 这类端口,比如:

  • http://localhost:3000 —— 前端开发常见
  • https://localhost:8443 —— 测试 HTTPS 用的替代端口

只要前后端约定好,端口随便选。但上线后最好切回标准端口,否则用户得手动输端口号,体验太差。

防火墙和代理也得认这两个端口

公司网络或云服务器上,80 和 443 经常是白名单端口,其他端口可能被拦。比如你在服务器部署了个服务跑在 8080,结果外网访问不了,八成是防火墙没开这个口子。

Nginx 反向代理也是常见操作。把 80 和 443 接进来,再转发给后端的 3000、5000 这些内部端口,既安全又灵活。