从浏览器输入一个URL到最终展示出页面,中间会发送哪些事儿?

文章目录

  • 前言
  • 一. DNS域名解析
  • 二. 进行封装
  • 三. 进行传输
  • 四. 到达服务器后层层分用
  • 五. 服务器把响应数据重新封装
  • 六. 响应数据进行传输
  • 七. 到达客户端层层分用
  • 八. 将网页渲染到浏览器上

前言

当你输入一个网址:www.baidu.com时,浏览器究竟做了哪些工作才可以得到以下这个页面呢?
从浏览器输入一个URL到最终展示出页面,中间会发送哪些事儿?_第1张图片

下面给大家详细介绍:

一. DNS域名解析

网络上的设备都是通过IP地址作为身份标识的,但是IP地址不好记、也不好传播。所以就发明了“域名”来表示这个IP地址,方便人们记忆和使用。

DNS系统的功能就是把域名自动转化成IP地址。

二. 进行封装

从浏览器输入一个URL到最终展示出页面,中间会发送哪些事儿?_第2张图片

浏览器根据IP地址构造出HTTP数据报,交给传输层TCP协议进行处理;
TCP通过“三次握手”建立连接,再加上TCP报头,交给网络层IP协议进行处理;
IP协议加上IP报头,交给数据链路层以太网协议进行处理;
以太网把数据报分装成对应的数据帧,最终通过网卡传输出去。

三. 进行传输

传输的过程会通过交换机和路由器经过一些局域网。

交换机会把数据分用到数据链路层(更上层的就不分用了),调整源mac地址和目的mac地址,再重新封装继续转发。

路由器会把数据分用到网络层(更上层的就不分用了),把目的IP解析出来,查询路由表。路由器根据数据报中的目的IP地址在路由表中匹配,选择合适的方向转发出去,每次转发TTL减1

四. 到达服务器后层层分用

从浏览器输入一个URL到最终展示出页面,中间会发送哪些事儿?_第3张图片

服务器经过层层分用得到HTTP数据,根据这个数据找到你想要访问的那个资源(这就是根据请求计算相应的过程),再把资源构造成HTTP响应。

五. 服务器把响应数据重新封装

从浏览器输入一个URL到最终展示出页面,中间会发送哪些事儿?_第4张图片
服务器根据IP地址构造出HTTP数据报,交给传输层TCP协议进行处理;
TCP协议再加上TCP报头,交给网络层IP协议进行处理;
IP协议加上IP报头,交给数据链路层以太网协议进行处理;
以太网把数据报分装成对应的数据帧,最终通过网卡传输出去。
传输出去后,TCP进行“四次挥手”断开连接。

六. 响应数据进行传输

传输的过程会通过交换机和路由器经过一些局域网。

交换机会把数据分用到数据链路层(更上层的就不分用了),调整源mac地址和目的mac地址,再重新封装继续转发。

路由器会把数据分用到网络层(更上层的就不分用了),把目的IP解析出来,查询路由表。路由器根据数据报中的目的IP地址在路由表中匹配,选择合适的方向转发出去,每次转发TTL减1

七. 到达客户端层层分用

从浏览器输入一个URL到最终展示出页面,中间会发送哪些事儿?_第5张图片

客户端经过层层分用得到HTTP数据。

八. 将网页渲染到浏览器上

将HTTP数据中传递过来的HTML、CSS、JS和业务数据进行解析,最终渲染在浏览器页面上。

你可能感兴趣的:(JavaEE初阶,网络,服务器,网络协议)