大抵流程
- URL 解析
- DNS 查问
- TCP 连贯
- 解决申请
- 承受响应
- 渲染页面
集体了解分为以下几步:
● 浏览器每次拜访网站,会在浏览器本地生成缓存,当用户第二次去拜访时,会检测到相应缓存,间接进行拜访。
● 如果浏览器没有查看到缓存,那么就会去拜访零碎缓存(也就是咱们说的Hosts)。
● 如果本地也没有缓存,那么浏览器就会去检测路由器缓存,进而再查看ISP(运营商)缓存。
● 如果以上缓存都没有找到需要资源,浏览器则会在根域名服务器查找对应的IP地址,并进行拜访。
一、大抵流程图
三次握手
建设DCP连贯,获取到对应的IP后,客户端向HTTP服务器发动TCP连贯
第一次握手:
建设连贯时,客户端发送SYB + 1 (建设联机)包到服务器,进入期待状态(1示意胜利,0示意失败)
第二次握手:
服务器收到SYN+1包后,确认信息,也返回一个ACK+1(确认联机)包,同时将这两个包返回给客户端,并进入期待状态
第三次握手:
客户端收到返回的两个包后,确认信息后,再给服务器发送一个ACK+1包,服务器收到后,进入TCP链接胜利状态
● 发送HTTP申请与服务器建设连贯后,就能够向服务器发动申请
● 服务器解决申请,服务器收到申请后,开始解析申请信息,通过相应的资源文件,解决用户申请和参数,并调用数据库信息,将后果返回给客户端。
● 返回响应数据在HTTP有申请就有响应,返回状态码。
状态码
101 持续申请,切换协定
200胜利
201已创立新资源
202服务器已接管申请,但尚未解决
301重定向永恒挪动,申请的网页已挪动到新的地位
302长期挪动
303查看其它地位
304未修改,
404客户端谬误,服务器无法解释申请的格局,申请的网页不存在
503常见的服务器端谬误,服务器不可用
四次挥手
敞开TCP连贯,为了防止客户端与服务器的资源占用和损耗,单方没有申请或响应传递时,任意一方都能够发动敞开申请。
第1次挥手
原本是建设状态,客户端向服务器发动终止的申请后,进入期待状态
第2次挥手
服务器收到发送来的申请,先回复一个确认的信息,
第3次挥手
将所有的数据传送完之后,向客户端发一个终止的申请,进入敞开期待的状态
第4次挥手
客户端收到客户端的终止申请后,终止期待,并向服务器发送了一个确认敞开的信息。此时断开连接
● 浏览器解析HTML并渲染文档树建设,浏览器解析HTML并开始渲染DOM,应用浏览器渲染机制,页面渲染实现
● 浏览器渲染机制,浏览器将HTML解析成树形的数据结构,简称DOM树,将css解析成树形的数据结构,简称cssDom树两种书进行合并后生成render Tree(渲染树)
● layout是通过计算render Tree的每个节点的具体位置,通过显卡将layout的节点内容别离出现到屏幕上这个过程可能会引起重绘和回流
● 重绘和回流回流必定会引起重绘,重绘不肯定会引起回流,回流对我的构造发生变化,引起了重绘,扭转款式,色彩不会对我的构造发生变化
优化:
缩小对渲染树(render tree)的操作,合并屡次多DOM和款式的批改,缩小对一些style信息的申请,利用好浏览器的优化策略。