一个页面从输入URL到页面加载显示完成,这个过程中发生了什么?

124 阅读3分钟

1.浏览器开启网络进程来解析这个URL

2.DNS解析,域名只是为了方便记忆 ,需要找到对应的ip地址找到我们要访问服务器在网络中的门牌号,然后建立通往该服务器的地址的路径

1)其中dns解析的过程:先去浏览器缓存中DNS看有没有这个ip的地址 ,如果有就拿来用,如果没有就去检查系统自身DNS缓存有没有这个ip地址,如果有就拿来用,如果没有就去找host文件还是没找到的话,就去本地域名服务器上查询,去根域名查询如果没有就去去com顶级域名查询,如果还是没有就去权限域名查询,查到了返回ip查不到就返回报错,

在DNS解析过程中,是有一小段空闲时间来进行预解析

image.png

4.当本地的主机连上网线接入互联网后,数据链路层和网络层就已经打通了,而向目标主机发起HTTP请求,就需要通过传输层建立端与端的链接,传输层常见的协议有TCP协议

1)TCP的三次握手

客户端给服务器端打电话:喂你在吗 ?客户端要知道服务器端是否已经接通,
(请求建立链接) 服务器端回应客户端:喂 我在呢,服务器端响应客户端 告诉客户端已经连接上
(客户端确认应答及请求建立连接) 客户端回应 哦哦你在太好了,响应确保客户端也能收到服务器端的消息了(服务器确认应答)

通过TCP三次握手确保双方能够建立有效的链接

5.TCP建立链接好要进行前后端的通信,在实际网络访问中,并非浏览器与确定IP地址直接通信 ,往往会在中间加入反向代理器

反向代理器的作用:对于复杂功能的网站 ,单一的服务器不能满足他的期望,将不同类型(文件服务器,邮件服务器,及web应用服务器)的服务器,部署到多个服务器上,组成集群由反向代理服务器提供给客户端用户使用,实现负载均衡,数据压缩,解决跨域,安全防火墙,对静态资源缓存等功能

6.后端处理流程

1)首先进行一层层的验证环节,跨域验证安全校验拦截,如果发现不符合规则的请求,则直接返回相应的拒绝报文

2)如果通过验证后才可以进入到具体的后台程序代码执行阶段,如具体的计算,数据库查询等

3)完成计算后,后台会以一个HTTP响应数据包的形式发送回请求的前端,结束本次请求

7.渲染的过程

代码从上到下进行渲染,解析HTML,CSS来构建render tree