浏览器输入url按回车键发生了什么
1、解析url:url统一资源定位标志,俗称网址。
由传输协议、服务器、域名、端口、虚拟目录、文件名、锚点、参数组成
浏览器拿到url进行识别,抽取域名字段
2、DNS解析:也就是域名解析,DNS实际上是一个域名和ip对应的数据库,域名与ip地址一一对应,域名与ip的转换工作称为域名解析,域名解析需要专门的域名解析服务器完成,可以在浏览器中输入ip地址、域名浏览网址,输入ip地址是直接在主机上调用内容,输入域名是通过域名解析服务器指向对应主机的ip地址,再从主机调用网站的内容,
DNS解析的步骤1)查询浏览器缓存,如无2)查询系统缓存,查询hosts文件,hosts文件保存了以前访问过网址的域名和ip数据,它就像是一个本地的数据库,找到就直接获取目标主机的ip地址,如无3)查询路由缓存,如无4)递归查询,跟域名服务器到顶级域名服务器再到极限域名服务器,依次搜索目标域名的ip
获取到对应域名的ip,发送http服务请求
3、建立TCP连接,浏览器与网站建立连接(三次握手)
第一次握手 客户端向服务器发送请求 等待服务器确认
第二次握手 服务器收到请求并确认回复一个指令
第三次握手 客户端收到服务器的回复指令后并返回确认
4、请求和传输数据
例如通过get请求访问某个网址 ,通过抓包可以看到 请求网址 请求方法 远程地址 状态码 http版本 请求头 响应头
响应头有set-cookie 说明浏览器没有这个网址的cookie信息,当下次访问同样网站时可以看到请求头包含这个cookie信息,首次访问cookie会提示服务器建立用户缓存信息,如果不是,利用cookie对应键值找到相应缓存 ,缓存中存放用户名、密码、和一些用户设置项
通过get请求和服务器的响应,可以将服务器上的目标文件传输到浏览器进行渲染
5、浏览器渲染页面
客户端拿到找到HTML和 MIME文件,通过MIME文件,浏览器知道要用页面渲染引擎来处理HTML文件
浏览器解析html源码 创建dom树 每个html标签对应一个节点,每个文本对应一个文本节点
浏览器解析css代码 计算出最终的样式数据 形成css对象模型cssom,首先 忽略非法css代码 然后按照浏览器默认设置-用户设置-外链样式-内联样式-style样式顺序进行渲染
dom+cssom构建渲染树
渲染树和dom树区别:
dom树与html标签一一对应,渲染树会忽略掉不需要渲染的元素 比如head display:none等等
一大段文本的每一行在渲染树中是一个独立的节点
渲染树的每个节点都储存对应的css属性
6、浏览器根据渲染树直接把页面绘制到屏幕上