从80端口返回来的数据一定是80端口监听到吗?
比如请求www.aaa.com:80 这个网址的数据,返回来的时候是用本地的80端口去接收数据的吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
比如请求www.aaa.com:80 这个网址的数据,返回来的时候是用本地的80端口去接收数据的吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
排名最高的回答,有些回答的是错的,但是最主要的是,根本没有回答你的问题。
https用的是443端口,因此
http 或者 https 协议默认的端口是 80
是错的。非要辩论,存在形如
https://www.xxx.com:80
的强制走80端口的https协议,浏览器也支持这种用法,但是,没有但是。简单回答:不是。客户端会随机采用一个本地可用的端口来连接你的80端口。
使用tcp协议访问远程端口,例如www.aaa.com:80,
无论采用纯tcp或者http,ftp协议,
都会在本地启动一个随机端口,随机原则是端口号在本地必须未被占用,具体端口不确定,但是基本是在10000以上,绝对不可能在1024以内。
tcp是长连接,所以连接断开之前,后续的数据传输仍旧通过这个端口。
下面会有个具体的例子?。
举个例子,我们可以在一台服务器上启动一个ssh服务(tcp,22端口),从另一台服务器上链接,那么:
ssh服务端:
机器名没有改,为默认的localhost.localdomain
ip为192.168.1.102
从服务器上看到的网络信息有三条,其中两条是监听ssh端口,还有一条是客户端的tcp连接。
ssh客户端:
机器名为PC,
ip为192.168.1.103
那么结论就有了:
对于传统的tcp连接和协议来说,
客户端对外开放51774(随机的)端口,使用51774(上次建立的随机端口)端口连接远程的22端口,这是一条tcp长连接,
数据传输,也是通过这一条tcp长连接,没有客户端用哪个端口接收数据这种说法。
如果非要说接收服务端的数据用哪个端口的话,那么,也是通过51774端口(上次建立的随机端口)。
客户端端口随机,下次再建立tcp连接,就会重新随机一个客户端可用的端口,服务端端口仍然不会变(ssh的22端口)。
但是仍然有个不算是规律的规律,如果频繁创建连接的话,可以认为,第二次的客户端随机到的端口,比第一次随机到的端口要大1。看看就好,别当真。另外说一下:
192.168.1.102:ssh表示,ip为192.168.1.102,端口为ssh端口(而不是ssh协议)。
端口与协议的对应可以在/etc/services查看。
其实这个涉及到计算机网络的知识:
这个属于网络数据传输,所以要涉及到计算机网络的五层模型
5.应用层(http应用)
4.传输层 (ip地址+端口号)
3.网络层 (ip 地址)
2.数据联络层 (mac 地址)
1.物理层 (传输二进制流)
因为你是用浏览器发送的请求(http 协议默认的端口是
80
),而返回来的数据(其实都是二进制流。其中包含了 目的主机的 ip地址和端口号,ip 是指定你这台机器在网络上的地址,而端口号指定应用程序),然后从第一层物理层
一直向上解析到应用层,当解析到第四层
时,操作系统根据端口号
,在这里是80
,所以系统在所有进程中找到哪个应用程序占用80
端口,就把返回的数据交给他。所以说:是在第一层物理层统一接收到所有的数据,然后根据端口号找到相应的应用程序,最后把数据交给该应用程序。
简单的说,不是。
监听端口的设置,是为了让别人来连接的一个“通道”,不是“接收”通道。
所以说,不用用本地端口接受的,更不是80了。
那么一楼所说的不是用本地端口接收数据,跟二楼就矛盾了啊,
不用,随便你怎么取这个地址的内容都可以。本地不用指定某个端口去接收。