当我尝试从程序中将端口80绑定到套接字时,出现错误,但两台浏览器如何同时听到同一端口80?两个浏览器如何同时在端口80上侦听?
回答
浏览器不侦听端口80
,HTTP服务器做(虽然这只是惯例,你可以使用端口80
轻松拥有一个FTP和Telnet服务器)。
在TCP/IP中,“会话”必须是唯一的,会话定义为5元组(protocol, sourceIP, sourcePort, destinationIP, destinationPort)
。这允许数据包在互联网上正确路由。
典型地,当客户端试图联系服务器,它指定0
作为其源端口这意味着该操作系统分配给它的未使用的一个。这意味着客户端实际上将在上监听端口而不是端口80
。
因此,当您的浏览器访问微软的网页时,您可能会收到与属性(TCP, mybox.com, 1101, www.microsoft.com, 80)
的会话。
如果您发现无法将服务器绑定到端口80
,很可能是因为您已经有一台服务器在该端口上运行,或者您的程序没有绑定到该端口所需的特权(端口小于1024
通常被认为是特权端口)。
运行netstat -a
(在Linux上或 Windows)会告诉你服务器是否绑定到端口80
。寻找端口80
监听器(或http
如果它解决端口服务名称),是这样的:
tcp 0 0 localhost:http *:* LISTEN
您将会话列为具有五元组('protocol,sourceIP,destinationIP,sourcePort,destinationPort)',但是您举例说明'(TCP,mybox.com,1101,www.microsoft.com,80)'。它应该不是'(TCP,mybox.com,www.microsoft.com,1101,80)'? – 2018-02-03 17:57:43
@Jon,谢谢你。这个元组不是我自己想要以任何方式订购的,它只是确定会话所需的信息。我会修正它的一致性,因为你绝对正确,可能会导致混淆。 – paxdiablo 2018-02-04 02:23:30
他们不听他们与80端口对话的端口80,或443如果您使用SSL(或在任何其他端口,如果管理员打破常规,您可能已经看到类似http://www.site.com:8080的网址已在8080端口上设置)。
浏览器将从随机编号较高的端口发出请求,以便浏览器可以同时处于活动状态。
由于paxdiablo说,你可以用netstat查看哪些程序侦听连接(使用“netstat的 - -b”将显示哪些可执行文件绑定到哪个端口)
的浏览器实际上不是绑定到80端口。您可能会发现,您也正在运行IIS或其他网络服务器,是绑定,这是您的问题的原因
浏览器实际上不听在端口80.网络服务器做到这一点,浏览器(动态端口)与49152和65535之间的端口打开连接。
在网络连接中,有一个对等体(通常称为客户机)连接到另一个(通常称为服务器)。据说服务器正在侦听某个端口,而客户端据说正在连接到该端口。
在这种情况下,Web服务器在所有客户端(浏览器)连接到端口80时监听端口80。
当浏览器与服务器建立连接时,它绑定到本地非特权端口,但连接到Web服务器的端口80.当服务器发回响应时,它会转到非特权端口浏览器的电脑。如果同一台计算机上有两个浏览器,则它们绑定到不同的端口。
如果你的意思是“怎么两个服务器侦听端口80”,可以考虑使用HTTP服务器API。 这两个服务器都可以注册一个回调函数和一个URL。客户端然后可以根据URL f.e来决定调用哪个服务器。
http://localhost/Service1将转到指定“http://localhost/Service1”作为其URL的服务。
- 1. 端口80上的Mac侦听器
- 2. 如何运行两个在kubernetes上同一端口上侦听的容器?
- 3. TCP程序不能侦听端口80
- 4. cap_net_bind_service脚本无法侦听端口80
- 5. 码头不希望侦听端口80
- 6. 如何通过Android浏览器上的端口80访问URL
- 7. 侦听两个不同端口的TCP服务器
- 8. 将IIS 7设置为侦听不同于80的端口
- 9. Socket.io在多个端口上侦听?
- 10. 实现一个80端口监听器
- 11. NIO。多个客户端通道在同一端口上侦听
- 12. 错误:侦听EACCES 0.0.0.0:444 node.js同时侦听端口444/443
- 13. 如何更改websphere侦听器端口
- 14. 如何确定在端口80上监听什么服务器
- 15. 允许容器侦听端口80的副作用
- 16. 骡子CE运行时不侦听端口80
- 17. c上的网络端口侦听器#
- 18. C /如何侦听多个UDP端口
- 19. 侦听多个TCP端口
- 20. 服务器侦听多个端口[Java]
- 21. 服务器侦听多个端口c
- 22. 如何在AIX上查找MQ侦听器端口?
- 23. netcat在端口上侦听时如何打印文本?
- 24. 如何配置Symfony项目来侦听Web服务器的80端口
- 25. 如何在Java中侦听UDP端口?
- 26. 在浏览器中侦听事件在JavaScript中查找窗口
- 27. 在同一端口上侦听多个进程?
- 28. 使用node.js在2个不同的端口上侦听
- 29. 浏览器中的Chrome.socket侦听器
- 30. 浏览器和viewer.container事件侦听器
服务器侦听,浏览器连接... – miku 2009-12-21 11:58:13
当连接到端口80时,两个程序中的哪一个应该回答? – 2009-12-21 12:06:43
@Alvaro这不是套接字的工作方式。 – 2009-12-21 12:14:07