两个浏览器如何同时侦听端口80?

时间:2009-12-21 11:56:08

标签: sockets

当我尝试从程序将套接字绑定到端口80时,我得到错误,但是两个浏览器如何同时监听同一个端口80?

7 个答案:

答案 0 :(得分:19)

他们不会在端口80上侦听它们与端口80,或443如果您正在使用SSL(如果管理员违反惯例,则在任何其他端口上),您可能已经看到了http://www.site.com:8080这样的网址该站点已在端口8080上建立。

浏览器将从随机的高编号端口发出请求,因此浏览器可以同时处于活动状态。

正如paxdiablo所说,您可以使用netstat查看哪些程序正在侦听连接(使用“netstat -a -b”将显示哪个可执行文件绑定到哪个端口)

答案 1 :(得分:19)

浏览器不会侦听端口80,HTTP 服务器(虽然这只是惯例,但您可以使用端口80轻松拥有FTP或telnet服务器。)< / p>

在TCP / IP中,“会话”必须是唯一的,会话定义为5元组(protocol, sourceIP, sourcePort, destinationIP, destinationPort)。这允许数据包在互联网上正确路由。

通常,当客户端尝试联系服务器时,它会将0指定为其源端口,这意味着操作系统会为其分配一个未使用的端口。这意味着客户端实际上会侦听那个端口而不是端口80

因此,当您的浏览器访问Microsoft的网页时,您可能会与属性(TCP, mybox.com, 1101, www.microsoft.com, 80)进行会话。

如果您发现无法将服务器绑定到端口80,则很可能是因为您已经在该端口上运行了服务器,或者您的程序没有绑定到该端口所需的权限(小于1024的端口通常被视为特权端口。)

运行netstat -a(在Linux Windows上)将告诉您服务器是否绑定到端口80。在端口80上寻找侦听器(如果它正在解析服务名称的端口,则为http),如:

tcp  0  0  localhost:http  *:*  LISTEN

答案 2 :(得分:8)

浏览器实际上不在端口80上侦听。网络服务器执行此操作,浏览器打开与49152和65535之间的端口的连接。我认为(动态端口)。

答案 3 :(得分:4)

在网络连接中,有一个对等体(通常称为客户端)连接到另一个对等体(通常称为服务器)。据说服务器正在侦听某个端口,而据说客户端正在连接到该端口。

在这种情况下,Web服务器侦听端口80,而所有客户端(浏览器)都连接到它。

答案 4 :(得分:3)

浏览器实际上并没有绑定到端口80。您可能会发现您还运行IIS或 绑定的其他Web服务器,这是导致问题的原因

答案 5 :(得分:2)

当浏览器与服务器建立连接时,它会绑定到本地非特权端口,但会连接到Web服务器的端口80.当服务器发回响应时,它会转到该端口上的非特权端口。浏览器的电脑。如果同一台计算机上有两个浏览器,它们会绑定到不同的端口。

答案 6 :(得分:0)

如果您的意思是“两个服务器如何侦听端口80”,请考虑使用HTTP Server API。 两个服务器都可以注册回调函数和URL。然后,客户端可以根据URL确定要调用哪个服务器,例如

http://localhost/Service1会转到指定了“http://localhost/Service1”作为其网址的服务。