浏览器输入一个url发生的事情

在浏览器输入一个url发生的事情例如输入:https://www.baidu.com/
在这里插入图片描述

主机:

1.当浏览器输入百度的url之后,基于DNS协议将百度服务器的域名转为ip地址,https的默认端口是443
2.封装:

  • <1>:应用层.应用程序(浏览器)将数据封装为https协议格式的数据
  • <2>:传输层:操作系统将应用层传输的数据封装位TCP协议格式的数据,传输层包含端口号
  • <3>:网络层:操作系统封装为IP协议格式的数据:包含ip地址
  • <4>:数据链路层:将传输的数据封装为以太网协议的数据,包含mac地址

3.数据封装完成之后,会先根据子网掩码计算目的主机与本机是否是同一个网段,如果是同一个网关,直接发
送,如果不是,本机无法处理,交给网关,网关(路由器)的本机ARP缓存表,基于网关查找mac地址

路由器1:

将主机发送的数据先分用在封装,路由器1接收到主机发送过来数据的源端口号是主机浏览器的端口,ip是主机的局域网ip,路由器会基于NAT和NAPT技术将ip和端口修改为路由器的公网ip+路由器端口,接下来路由器1会将分用封装完成之后的数据继续发送,如果找不到服务器的mac地址,会将数据继续发送到下一个路由器,此时发送端的源ip和源端口都不发生改变,但是mac地址会由发送端主机mac地址—>路由器的mac,而此时的目的地址就是路由器2的mac地址

路由器2

将路由器1发送的数据进行分用和封装,继续修改发送端和接收端的mac地址(假设下一跳的地址就是服务器)
源mac:路由器1的mac地址---->路由器2的mac地址目的mac:路由器2的mac地址---->百度服务器的地址

服务器:

服务器接收到数据之后,将数据进行从下到上,数据链路层—>应用层的分用,判断目的ip与本机ip是否一致,一致的话接收数据交给对应端口进程,再有web服务器处理https协议格式的数据,
web服务器分用https协议的数据格式,根据服务路径和应用上下文路径,处理数据,如果是静态资源,直接返回;如果是动态资源,调用servlet的service方法,最终调用的是doXXX一些方法,对请求进行处理,处理完成之后,web服务器将数据封装位https协议的数据,
从上到下依次封装数据,应用层---->数据链路层
响应发送的数据报的传输流程和之前类似,最终到达路由器1,路由器1接收到响应的数据之后,基于NAT和NAPT技术将ip和端口转为局域网主机的ip和端口,在发送到对应的主机

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值