我想知道浏览器内部是如何工作的。现在,可以通过以下两种方式之一在同一浏览器中使用“标签”连接到不同的网站:1-使用线程2-对每个打开的标签使用不同的源端口号
我知道这个问题可能没有一个单一的答案,而且不同的浏览器可能会有所不同,但是所有的回答都是值得感谢的。
谢谢
谢谢大家我真的很感激。我的问题与客户端的源端口有关。我想问的是,浏览器打开的每个选项卡是使用不同的源端口,还是整个进程使用相同的源端口“我是说包含不同选项卡的窗口”,还是整个窗口使用相同的源端口?
或者,web浏览器使用线程吗?
发布于 2011-07-09 13:04:26
线程和端口是两个独立且大多不相关的概念。
线程是本地计算机处理器处理计算时所做的事情,例如绘制到屏幕上或等待Internet流量。在每个选项卡中,这些操作可能有一个单独的线程(甚至更多)。
端口是流量本身的标识(在TCP和UDP中)。为了进行通信,您的浏览器将打开一个本地端口(通常是~5000这样的大端口,只要它是唯一的就可以),并连接到服务器通常的80端口(服务器正在侦听的端口)。如果你的计算机不知道它无法连接的远程端口,但它的标准是使用80作为HTTP,例如。
浏览器在单独的线程中打开选项卡(出于安全和可靠性的原因,甚至在单独的进程中打开新的选项卡),并在客户端使用单独的端口。所以答案是肯定的,线程和端口都是。它们始终使用相同的远程端口,除非您在物理上指定了其他端口(例如,使用https://而不是http://连接到网站时使用单独的端口,因为该协议就是这样建立的)。您也可以在名称后面加上:#来指定要在现代浏览器中使用的端口。(例如:http://www.google.com:81/,但是这将失败,因为这不是他们监听的端口!)
发布于 2011-07-09 12:58:26
使用netstat
(或BSD机上的sockstat
)快速检查会发现,不同的连接使用了不同的源端口号。在这方面,你是对的。
Firefox对每个选项卡至少使用一个线程。每个线程可以为不同的数据打开多个连接(例如,从媒体服务器加载图像和从web服务器加载内容)。每个连接都应该有自己的源端口。
发布于 2011-07-09 12:53:34
根据浏览器的不同,它对每个选项卡使用不同的线程或不同的进程。使用的本地端口可能与不同的选项卡没有太多关系。
https://stackoverflow.com/questions/6632801
复制相似问题