如果您打开了两个浏览器窗口,并且使用每个窗口导航到不同的网站,那么软件如何知道哪个HTTP响应属于哪个浏览器实例?
更新
这似乎是通过入站TCP端口号来区分的。但是,不涉及TCP/UDP的网络消息怎么办?例如,如果您打开两个终端应用程序,并使用这两个应用程序向同一远程服务器发送ping消息,那么回复如何找到到达其终端实例的途径?
发布于 2010-11-05 17:06:45
通常,每个浏览器实例都会创建自己的socket来与服务器通信。尽管所有套接字的出站端口都相同(通常是TCP 80或443),但它们的入站端口是不同的。因此,当服务器响应请求时不存在冲突,因为响应被发送到不同的入站端口。
像ping这样的工具使用ICMP packets,它提供了自己的方法来唯一地标识调用应用程序(一个惟一的标识符和一个序列号)。
发布于 2010-11-05 17:05:54
它们通常与不同的TCP连接相关联,这些TCP连接之间在客户端使用不同的端口。这意味着客户端的TCP堆栈知道它们的不同之处,并通过客户端以一种容易区分的方式使用的套接字API传递它们。(通常是不同的文件描述符)
这种情况的例外是流水线,其中作为优化,可以通过一个连接发送多个http请求。但是,像这样发送的请求是按照发送的顺序接收的,这使得将它们与请求进行匹配变得微不足道。
https://stackoverflow.com/questions/4104525
复制相似问题