Apache 为什么可以';不同的服务器是否绑定到同一端口?

Apache 为什么可以';不同的服务器是否绑定到同一端口?,apache,express,gruntjs,Apache,Express,Gruntjs,我对港口感到困惑 我觉得奇怪的是,我们需要将不同的服务器绑定到不同的端口 例如: Apache绑定在8080上,Express.js无法绑定在8080上 服务器端口绑定与应用程序端口侦听有何不同 例如: 不同的浏览器,如chrome、firefox,可以在端口80上进行监听和通信吗 在尝试运行“grunt测试:单元”时出现此问题。有一个tomcat服务器已经绑定到8080,但是服务器grunt启动,我相信中间件能够启动,但是它不能捕获浏览器。停止tomcat服务器使一切正常。实际上,Firefo

我对港口感到困惑

我觉得奇怪的是,我们需要将不同的服务器绑定到不同的端口

例如: Apache绑定在8080上,Express.js无法绑定在8080上

服务器端口绑定与应用程序端口侦听有何不同

例如: 不同的浏览器,如chrome、firefox,可以在端口80上进行监听和通信吗


在尝试运行“grunt测试:单元”时出现此问题。有一个tomcat服务器已经绑定到8080,但是服务器grunt启动,我相信中间件能够启动,但是它不能捕获浏览器。停止tomcat服务器使一切正常。

实际上,Firefox、Chrome等使用不同的源端口。他们不监听端口;它们连接到远程服务器。服务器正在侦听一个端口(80)。浏览器连接的源端口是随机选择的,并且是一个较大的数字。您可以使用
netstat
进行检查。它们的目标端口相同(80)

不能将多个服务器绑定到同一端口*的原因是操作系统不知道将传入连接转移到哪个应用程序


*事实上,你可以,但这很复杂

实际上,Firefox、Chrome等使用不同的源端口。他们不监听端口;它们连接到远程服务器。服务器正在侦听一个端口(80)。浏览器连接的源端口是随机选择的,并且是一个较大的数字。您可以使用
netstat
进行检查。它们的目标端口相同(80)

不能将多个服务器绑定到同一端口*的原因是操作系统不知道将传入连接转移到哪个应用程序


*事实上,你可以,但这很复杂

一次只有一个应用程序可以控制/侦听端口的原因如下: 当操作系统接收到端口80的请求,并且有两个应用程序在监听它时,它怎么知道该将请求传递给哪个应用程序

多个应用程序可以同时访问web的原因是,它们的访问方式不同,例如,它们使用一个未使用的端口(可能是62332之类的),而只有目标端口是端口80


这就是端口的用途—这样,您可以在每台机器上同时运行多台服务器。

一次只有一个应用程序可以控制/侦听端口的原因如下: 当操作系统接收到端口80的请求,并且有两个应用程序在监听它时,它怎么知道该将请求传递给哪个应用程序

多个应用程序可以同时访问web的原因是,它们的访问方式不同,例如,它们使用一个未使用的端口(可能是62332之类的),而只有目标端口是端口80


这就是端口的用途-这样,您可以在每台机器上同时运行多台服务器。

谢谢您的回答,我不知道客户端上的端口是随机的和不同的。同样有道理的是,可以绑定到同一个端口,但并不经常这样做,因为额外的复杂性并不值得这么做。谢谢你的回答,我不知道客户端上的端口是随机的和不同的。另外,绑定到同一个端口也是有意义的,只是不经常这么做,因为额外的复杂性并不值得这么做。