80 端口如何与应用程序端口关联?

网络工程 传输协议
2022-02-26 02:04:00

我是网络新手,只是关于端口号的问题。我们知道端口 80 用于 HTTP。

但是,如果我想访问其 Web 服务器处理 http 请求的 Web 应用程序,通常我在地址栏中输入以下 url:

http://servername.com/index.html:4200

那么为什么我必须输入像 4200 这样的应用程序端口,为什么不:

http://servername.com/index.html:80

端口 80 如何与应用程序端口 4200 关联?

1个回答

按照惯例和通常的配置文件/设置中的默认设置,Web 服务器为 HTTP 侦听端口 tcp/80,为 HTTPS 侦听端口 tcp/443。但是,如果进行了相应配置,它们可能会接受任何其他 TCP 端口上的传入请求。

另外:为方便起见,大多数 http 客户端库(或浏览器)都省略了:80if 协议指示符 ishttp://:443if it is https://

但是,当在后台处理用户的请求时,他们将在编写连接请求时假定给定的默认值并将其传递给 TCP 层。毕竟,TCP 层本身不知道要连接到哪个目标端口,除非它得到完整的指令。

HTTP 没有需要与给定 TCP 端口关联的“应用程序端口”的概念(例如您给出的 4200 示例)。在服务器(或反向代理)端,可以生成巧妙的目录或(“虚拟”)路径,使 URL 看起来像http://servername.com:80/applications/app4200/index.html - 但这会与第 4 层的“端口”概念完全无关。

...这让我回到:服务器端配置实际上在网络工程中是相当离题的。如果您想更深入地研究这个主题,Serverfault 可能是一个更好的地方。