抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

键入网址到网页显示,期间发生了什么?

输入网址到网页显示,这个过程到底发生了什么,我相信这是初学者很想了解地方。明白这个过程,才能将所学的计算机网络的知识串连起来,而不是孤零零的去学一个点。

首先,让我们来了解一下五层模型。

五层模型

  • 应用层:HTTP、DNS、Web socket
  • 传输层:TCP、UDP
  • 网络层:IP、路由器
  • 数据链路层:网桥、交换机
  • 物理层:中继器、集线器、网线

怎么区分数据链路层和物理层?

物理层负责物理介质上传输原始的比特流(0、1),不关心内容,只把比特流发出去。
数据链路层负责讲原始的比特流组织成帧,并在同一个局域网内实现可靠传输。
例如交换机,根据MAC地址转发帧,一旦数据需要跨局域网,就需要“路由”了,超出数据链路层的能力。

现在,让我们来看输入网址到网页显示的过程

1. 解析URL生成HTTP请求

浏览器对URL进行解析,生成HTTP请求
URL包括域名资源文件的路径名

URL是什么?

全称:Uniform Resource Locator,统一资源定位符。
简单来说,就是网页的“地址”,用来告诉浏览器“去哪里找这个资源”
它告诉浏览器:用什么协议、连接哪台服务器、找哪个文件、带什么参数

2. DNS 域名解析得到目的IP

浏览器在生产HTTP请求后,需要委托操作系统将消息发送给Web服务器。
委托操作系统发送消息时,必须提供给对象的IP地址。
即:域名 -> IP

DNS解析流程


递归查询比较常用

3. TCP三次握手建立可靠连接

客户端与服务器建立连接,建立连接后会对每个数据块增加一个TCP头部,每个数据块的长度是MSS。

4. 生成IP报文实现远程定位

TCP连接传输消息需要委托给下一层,即网络层。
将源IP地址和目的IP地址组成IP头部,就可以发送了。

5. 添加MAC头部实现以太网传输

MAC 包头里需要发送方 MAC 地址接收方目标 MAC 地址,用于两点之间的传输。
发送方的MAC地是在网卡生产时写入到 ROM 里的,将这个值读取出来写入到MAC头部;
通过ARP协议在以太网中以广播的形式获得目标MAC地址。

ARP是什么?

ARP(Address Resolution Protocol,地址解析协议)的主要功能是将网络层的IP地址解析为数据链路层的MAC地址,以实现局域网内的设备
通信。尽管其功能涉及数据链路层的MAC地址,但根据协议层级划分,它属于网络层

6. 网卡、交换机、路由器

网卡将数字信号转换成电信号然后发送给交换机,
交换机再转发给路由器,然后在路由器中层层跳跃最终到达目标服务器

7. 服务器响应请求

数据包到达服务器后会先检查MAC地址,不符合直接丢弃。
符合则检查IP,根据IP头部知道上层是TCP,再根据TCP头部找到端口号相符合的进程,再根据请求的数据文件路径找到文件并封装在HTTP响应报文中发送给客户端

8. 客户端渲染页面

浏览器收到HTTP响应后,会解析HTML、CSS、JavaScript等文件,渲染出最终的网页。

评论