输入url后到页面渲染发生了什么

输入url后到页面渲染发生什么事?
一.DNS解析,将域名解析为ip地址
读取缓存顺序如下:
先读取浏览器DNS缓存
系统DNS缓存
路由器缓存
网络运营商缓存
递归搜索

 二.TCP连接:即TCP的三次握手

1第一次握手,由浏览器发起,告诉服务器。我要发请求了;
2第二次握手,由服务端发起,告诉浏览器我准备接受了,你赶紧发送吧;
3.第三次握手,由浏览器发起,告诉服务器我马上发起了,你准备接受吧。
为啥要发起三次?
就好像甲给乙打电话,甲不能接通后就告诉乙什么事,需确认乙有空才可以;
同样乙也要确认甲有没有空才能和他交流。
最后一次甲需要和乙再确认一次,万一甲有事,乙(服务器)一直等着,消耗资源。

 三. 发送http请求

请求报文:http协议的通信内容

 四. 接受响应返回报文

响应报文

 五、渲染页面
 
1.遇见html标记,调用html解析器解析成Token标记并构建成DOM(依据深度优先原则:即一条道走到黑)2.遇见style/link标记。调用css解析器,处理css标记,用构建cssom树。
3.遇见script标签标记,调用js解析器,处理script代码(绑定事件,修改dom/cssom树)
4.将dom树和cssom树合并成一个渲染树(render Tree);
5.开始根据渲染树计算布局,计算每个节点的几何信息(布局),布局主要是确定各个元素的位置和尺寸。
6.绘制页面:将各个节点的颜色绘制到屏幕上(渲染)

注意:这5个步骤不一定按照顺序执行,若dom树或cssom树被修改了,可能会发生重排和重绘,
会执行多次布局和渲染,往往实际页面中这些步骤会被执行多次。
尽量避免重排和重绘,否则会引起重排(reflow):
如:dom节点的删除,添加
dom节点的尺寸变化,位置变化(如display:none->block)
重绘:
如改变字体颜色,visibility,opacity等。


 六. 断开连接

四次TCP挥手
第一次挥手,浏览器发起,我东西发送完了(请求报文),准备关闭吧;
第二次挥手 服务器发起,告诉浏览器我东西接受完了(请求报文),准备关闭了,你也在准备吧;
第三次挥手,服务器发起  我东西发送完了(响应报文),你准备关闭吧;
第四次挥手,由浏览器发起,告诉服务器(响应报文),我东西接受完了,你也准备吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值