美文网首页
浏览器相关流程及优化

浏览器相关流程及优化

作者: AngelTeng | 来源:发表于2018-11-16 12:22 被阅读0次

组成

浏览器

渲染引擎:

Trident, Gecko, Presto, Webkit, Blink

流程

  1. **DNS解析(迭代查询)
优化:
  • 减少dns请求
  • dns预解析
  • httpdns防劫持
  • dns负载均衡**
DNS
  1. 浏览器以一个随机端口进入到网卡,进入TCP/IP协议栈,然后可能经过防火墙过滤,
  2. **建立TCP链接:
优化:

用https/http2**


tcp
  • 第一次握手:客户端A将标志位SYN置为1,随机产生一个值为seq=J(J的取值范围为=1234567)的数据包到服务器,客户端A进入SYN_SENT状态,等待服务端B确认;
  • 第二次握手:服务端B收到数据包后由标志位SYN=1知道客户端A请求建立连接,服务端B将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给客户端A以确认连接请求,服务端B进入SYN_RCVD状态。
  • 第三次握手:客户端A收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务端B,服务端B检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端A和服务端B进入ESTABLISHED状态,完成三次握手,随后客户端A与服务端B之间可以开始传输数据了


    tcp
  1. 发送HTTP请求(****GET 或者 POST 等,不常用的还有 PUT DELETE 、****HEAD****、****OPTION****以及 TRACE ):静态资源缓存,can,服务器负载均衡,服务器缓存,
  2. 服务器给浏览器响应一个****301****永久重定向响应
  3. 浏览器跟踪重定向地址
  4. 服务器处理请求:nginx->应用服务器
  5. 服务器返回一个http响应
  6. 客户端渲染:jscss位置,减少体积

渲染流程

  1. 加载HTML内容,处理HTML标记,构建DOM树
  2. 加载css,处理css标记,构建CSSOM树
  3. 将DOM和CSSOM合并成一个渲染树
  4. Layout:CPU根据渲染树来布局,计算及节点几何信息
  5. Paint:GPU根据每个Layer位置绘制点,以渲染层缓存
  6. Composition:处理多层渲染层Layers之间的关系,合成一个页面
    其中:
  7. CSS 被视为阻塞渲染的资源,这意味着浏览器将不会渲染任何已处理的内容,直至 CSSOM 构建完毕。存在阻塞的 CSS 资源时,浏览器会延迟 JavaScript 的执行和 DOM 构建。
  8. 当浏览器遇到一个 script 标记时,DOM 构建将暂停,直至脚本完成执行

css优化:

  1. <link href="print.css" rel="stylesheet" media="print">设置了媒体类型,会加载但不会阻塞

js优化:

  1. async 与 defer 属性对于 inline-script 都是无效的
  2. defer 属性:载入 JavaScript 文件时不阻塞 HTML 的解析,执行阶段被放到 HTML 标签解析完成之后。
  3. async属性:表示异步执行引入的 JavaScript,如果已经加载好,就会开始执行,加载的 JavaScript 依然会阻塞 load 事件。多个 async-script 的执行顺序是不确定的
  4. 使用 document.createElement 创建的 script 默认是异步async的

dns优化

  1. 减少 DNS 请求
  2. 缩短 DNS 解析路径
  3. dns预解析 dns-prefetch
  4. localDns:缓存挟持,转发
  5. HttpDns:
    客户端直接访问HttpDNS接口,获取业务在域名配置管理系统上配置的访问延迟最优的IP。客户端向获取到的IP后就向直接往此IP发送业务协议请求。

CDN功能:

  1. 调度分配主机;负载均衡,根据 IP,网络流量情况分配最靠近,网络最通畅的 CDN 节点实现加速
  2. 反向代理
  3. 静态缓存;缓存静态资源(html,图片,音乐,视频等)
  4. 防止 DDOS 攻击

相关文章

  • 浏览器相关流程及优化

    组成 渲染引擎: Trident, Gecko, Presto, Webkit, Blink 流程 **DNS解析...

  • 性能优化:App启动优化

    一、App启动流程及启动优化二、定量监测App启动耗时、定位耗时代码三、果速送App启动优化 一、App启动流程及...

  • 流程优化的层级

    根据流程优化内容的复杂程度(所需要的资源多寡、涉及到的活动及活动关系的数量、参与的角色及部门等),可以将流程优化分...

  • 原型设计案例---商城

    2017/3/16 优化:登录/注册流程 新增:购物车相关流程2017/3/10 初稿。 老板:现在...

  • 软件推荐

    浏览器 Chrome 镜像 浏览器相关插件 IDE Sublime Text 3 及相关插件 代码版本控制 Git...

  • 2B系统业务场景识别与分析

    识别出系统相关的业务流程,然后对这些流程进行详细的分析、优化,接下来就需要识别出这些流程中存在哪些和系统相关的业务...

  • js事件循环:微任务和宏任务

    浏览器JavaScript执行流程以及Node.js中的流程均基于事件循环。 了解事件循环的工作方式对于优化(有时...

  • IOS性能优化(多线程及GPU)(一)

    IOS性能优化(多线程及GPU) 性能优化相关知识链接 前言: 说到性能优化,这个话题挺广的,有的需要优化tabl...

  • 浅谈小公司测试流程

    1.背景及必要性 基于公司测试部门测试流程及验收标准建立的必要性,以及现有流程的不完善性,测试部主导优化测试流程并...

  • 前端开发面试题总结--(四)前端综合

    这里综合是指除了HTML、CSS、JS之外的部分,比如浏览器相关、资源文件优化等等…… 一. 浏览器内核(渲染引擎...

网友评论

      本文标题:浏览器相关流程及优化

      本文链接:https://www.haomeiwen.com/subject/jodvxqtx.html