1。输入网址在地址栏中输入网址并回车,浏览器会对输入内容进行判断:检查输入内容是否为合法的URL连接。合法,判断输入的网址是否完整。如果不完整,浏览器会智能补全地址前缀或后缀。非法的,以输入的内容作为搜索条件,使用搜索引擎进行搜索。2、DNS解析URL地址解析成ip地址的过程就是DNS解析。浏览器缓存:浏览器??以一定的频率缓存DNS记录。操作系统缓存:如果在浏览器缓存中找不到所需的DNS记录,请在操作系统中查找。路由缓存:路由器也有DNS缓存。ISP的DNS服务器:ISP是InternetServiceProvider(互联网服务提供商)的缩写,ISP有专门的DNS服务器来响应DNS查询请求。根服务器:如果ISP的DNS服务器还找不到,就会向根服务器发出请求,进行递归查询(DNS服务器先询问根域名服务器.com域名服务器的IP地址,然后问.baidu域名服务器,依次类推)1)优化:dns-prefetch当浏览器向(第三方)服务器请求资源时,首先要将跨域域名解析为IP地址,然后浏览器可以发出请求。dns-prefetch(DNS预取)是前端网络性能优化的一个衡量指标。根据浏览器定义的规则,预先解析可能使用的域名,将解析结果缓存在系统缓存中,缩短DNS解析时间,提高网站访问速度。3.TCP三次握手当浏览器得到服务器的IP地址后,浏览器向服务器的80端口发起一个随机端口号的TCP连接请求。客户端发送数据前,发起一次TCP三次握手,同步客户端和服务器的序号和确认号,并交换TCP窗口大小信息。客户端发送SYN包,表示连接请求;服务器收到SYN包,回复SYN+ACK包,表示同意连接;客户端收到SYN+ACK包,回复ACK包,表示连接成功。1)为什么三次握手的目的是“防止无效的连接请求段突然传到服务器,导致错误”。4.发送HTTP/HTTPS请求(1)HTTP连接建立后,浏览器向服务器发送一个初始的HTTPGET请求,请求目标通常是一个HTML文件。(2)HTTPS如果使用HTTPS,会在TCP和HTTP之间增加一层协议,作为加密和认证服务。这一层协议一般是SSL和TLS协议。SSL协议和TLS协议的作用是对客户端和服务端进行认证,对数据进行加密,防止数据在中途被窃取,保持数据的完整性,保证数据在传输过程中不被更改。5.对请求的响应服务器收到请求后,发送一个HTTP响应消息,其中包含响应头和HTML文本。1)Statuscode1xx:Instructioninformation--表示请求已经收到,继续处理。2xx:成功——表示请求已被成功接收、理解和接受。3xx:重定向-需要进一步操作才能完成请求。4xx:ClientError-请求有语法错误或请求无法完成。5xx:服务器端错误——服务器未能完成合法请求。6.浏览器的页面渲染链接不会阻塞渲染脚本,可能会阻塞渲染1)构建DOM树根据HTML内容,将标签按照结构解析成DOM树。DOM树解析的过程是深度优先遍历。即先构造当前节点的所有子节点,再构造下一个兄弟节点。在读取HTML文档和构建DOM树的过程中,如果遇到script标签,DOM树的构建将被暂停,直到脚本被执行。2)构建CSSOM树处理CSS标记并构建CSSOM树。在匹配一个节点对应的CSS规则时,会按照从右到左的顺序,例如:divp{font-size:14px}会先搜索所有p标签,然后判断其父元素是否为div。所以我们在写CSS的时候,尽量使用id和class,不要过度级联。3)合并渲染树将DOM树和CSSOM树合并为一棵渲染树。渲染树会忽略那些不需要渲染的节点,比如设置了display:none的节点。4)布局绘制根据渲染树布局计算各节点的几何信息。5)回流和重绘display:none会触发回流,visibility:hidden只会触发重绘。(1)Reflow当浏览器发现某个部分发生了变化,影响了布局,就需要返回去重新渲染。它会递归地从html标签开始,重新计算位置和大小。回流基本上是无法避免的,因为当你滑动鼠标,调整窗口大小时,页面会发生变化。(2)重绘发生在元素的背景色、文本颜色等发生变化而不影响周围元素的位置变化时。每次重绘后,浏览器还需要将渲染层合并输出到屏幕上。回流的代价比重绘要高很多,所以要尽量避免回流。6)优化(1)首屏渲染FCP首屏渲染的时机发生在head标签加载之后。将关键样式放在head标签中。尽量将script标签放在body标签的末尾,因为script可能会阻塞渲染。7.Disconnect渲染完成后,可以断开TCP连接。但是现在,为了减少请求的耗时,浏览器已经默认开启了持久连接,只有在关闭标签页时才会关闭TCP连接。