浏览器工作原理与实践
李兵
前盛大创新院高级研究员
立即订阅
6334 人已学习
课程目录
已完结 44 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 参透了浏览器的工作原理,你就能解决80%的前端难题
免费
宏观视角下的浏览器 (6讲)
01 | Chrome架构:仅仅打开了1个页面,为什么有4个进程?
02 | TCP协议:如何保证页面文件能被完整送达浏览器?
03 | HTTP请求流程:为什么很多站点第二次打开速度会很快?
04 | 导航流程:从输入URL到页面展示,这中间发生了什么?
05 | 渲染流程(上):HTML、CSS和JavaScript,是如何变成页面的?
06 | 渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的?
浏览器中的JavaScript执行机制 (5讲)
07 | 变量提升:JavaScript代码是按顺序执行的吗?
08 | 调用栈:为什么JavaScript代码会出现栈溢出?
09 | 块级作用域:var缺陷以及为什么要引入let和const?
10 | 作用域链和闭包 :代码中出现相同的变量,JavaScript引擎是如何选择的?
11 | this:从JavaScript执行上下文的视角讲清楚this
V8工作原理 (3讲)
12 | 栈空间和堆空间:数据是如何存储的?
13 | 垃圾回收:垃圾数据是如何自动回收的?
14 | 编译器和解释器:V8是如何执行一段JavaScript代码的?
浏览器中的页面循环系统 (6讲)
15 | 消息队列和事件循环:页面是怎么“活”起来的?
16 | WebAPI:setTimeout是如何实现的?
17 | WebAPI:XMLHttpRequest是怎么实现的?
18 | 宏任务和微任务:不是所有任务都是一个待遇
19 | Promise:使用Promise,告别回调函数
20 | async/await:使用同步的方式去写异步代码
浏览器中的页面 (8讲)
21 | Chrome开发者工具:利用网络面板做性能分析
22 | DOM树:JavaScript是如何影响DOM树构建的?
23 | 渲染流水线:CSS如何影响首次加载时的白屏时间?
24 | 分层和合成机制:为什么CSS动画比JavaScript高效?
25 | 页面性能:如何系统地优化页面?
26 | 虚拟DOM:虚拟DOM和实际的DOM有何不同?
27 | 渐进式网页应用(PWA):它究竟解决了Web应用的哪些问题?
28 | WebComponent:像搭积木一样构建Web应用
浏览器中的网络 (3讲)
29 | HTTP/1:HTTP性能优化
30|HTTP/2:如何提升网络速度?
31|HTTP/3:甩掉TCP、TLS 的包袱,构建高效网络
浏览器安全 (5讲)
32 | 同源策略:为什么XMLHttpRequest不能跨域请求资源?
33 | 跨站脚本攻击(XSS):为什么Cookie中有HttpOnly属性?
34 | CSRF攻击:陌生链接不要随便点
35 | 安全沙箱:页面和系统之间的隔离墙
36 | HTTPS:让数据传输更安全
结束语 (1讲)
结束语 | 大道至简
课外加餐 (6讲)
加餐一|浏览上下文组:如何计算Chrome中渲染进程的个数?
加餐二|任务调度:有了setTimeOut,为什么还要使用rAF?
加餐三|加载阶段性能:使用Audits来优化Web性能
加餐四|页面性能工具:如何使用Performance?
加餐五 | 性能分析工具:如何分析Performance中的Main指标?
加餐六|HTTPS:浏览器如何验证数字证书?
浏览器工作原理与实践
登录|注册

加餐六|HTTPS:浏览器如何验证数字证书?

李兵 2019-12-20
你好,我是李兵。
在《36|HTTPS:让数据传输更安全》这篇文章中,我们聊了下面几个问题:
HTTPS 使用了对称和非对称的混合加密方式,这解决了数据传输安全的问题;
HTTPS 引入了中间机构 CA,CA 通过给服务器颁发数字证书,解决了浏览器对服务器的信任问题;
服务器向 CA 机构申请证书的流程;
浏览器验证服务器数字证书的流程。
不过由于篇幅限制,关于“浏览器如何验证数字证书”的这个问题我们并没有展开介绍。那么今天我们就继续聊一聊这个问题。了解了这个问题,可以方便我们把完整的 HTTPS 流程给串起来,无论对于我们理解 HTTPS 的底层技术还是理解业务都是非常有帮助的。
因为本文是第 36 讲的延伸,所以在分析之前,我们还是有必要回顾下数字证书申请流程浏览器验证证书的流程,同时你最好也能回顾下第 36 讲。

数字证书申请流程

我们先来回顾下数字证书的申请流程,比如极客时间向一个 CA 机构申请数字证书,流程是什么样的呢?
首先极客时间填写了一张含有自己身份信息的表单,身份信息包括了自己公钥、站点资料、公司资料等信息,然后将其提交给了 CA 机构;CA 机构会审核表单中内容的真实性;审核通过后,CA 机构会拿出自己的私钥,对表单的内容进行一连串操作,包括了对明文资料进行 Hash 计算得出信息摘要, 利用 CA 的私钥加密信息摘要得出数字签名,最后将数字签名也写在表单上,并将其返还给极客时间,这样就完成了一次数字证书的申请操作。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《浏览器工作原理与实践》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(6)

  • 世界和平
    工作两年,对很多前端知识有的还是比较乱的,一知半解禁不住深究,老师的课程帮助很好的梳理了这些知识,也详细的讲解了,让我有了系统的认知,也为之后的继续学习提供了方向,非常的感谢老师,很值。已经推荐给朋友,以后如果老师再出课,也会继续跟着学习。 我不是托,我不是托,我就是真诚的表示一下感谢。谢谢 ~

    作者回复: 🤝

    2019-12-20
    2
  • LEON
    如果有些服务器没有部署 CA 的数字证书,那么浏览器还可以通过网络去下载 CA 证书,不过这种方式多了一次证书下载操作,会拖慢首次打开页面的请求速度,一般不推荐使用。

    老师这块没听明白?这是默认因为吗?下载的是中间CA证书吗?去网络中什么地方下载?如何确保下载CA的有效性?
    感谢。
    2019-12-22
    1
  • 极客时间
    盗版的操作系统也有可能安装了恶意根证书啊,所以大家支持正版吧
    2019-12-25
  • -_-_aaa
    文中“通常,当你部署 HTTP 服务器的时候,除了部署当前的数字证书之外”,那个应该是HTTPS吧
    2019-12-25
  • 许童童
    良心老师!
    2019-12-24
  • lang
    老师辛苦啦
    2019-12-20
收起评论
6
返回
顶部