浏览器原理知识大纲
一、浏览器安全
1.1 什么是 XSS 攻击?
1.2 如何防御 XSS 攻击?
1.3 什么是 CSRF 攻击?
1.4 如何防御 CSRF 攻击?
1.5 有哪些可能引起前端安全的问题?
1.6 网络劫持有哪几种,如何防范?
1.7 什么是中间人攻击?如何防范中间人攻击?
二、进程与线程
2.1 进程和线程的区别
2.2 进程之间的通信方式
2.3 死锁产生的原因?如何解决死锁的问题?
2.4 进程与线程的概念
2.5 如何实现浏览器内多个标签页之间的通信?
2.6 浏览器渲染进程的线程有哪些
2.7 僵尸进程和孤儿进程是什么?
2.8 对 Service Worker 的理解
三、浏览器缓存
3.1 对浏览器的缓存机制的理解
3.2 协商缓存和强缓存的区别
3.3 浏览器资源缓存的位置有哪些?
3.4 为什么需要浏览器缓存?
3.5 点击刷新按钮或者按 F5、按 Ctrl+F5(强制刷新)、地址栏回车有什么区别?
四、浏览器组成
4.1 常见浏览器所用内核
4.2 对浏览器内核的理解
4.3 常见的浏览器内核比较
4.4 浏览器的主要组成部分
4.5 对浏览器的理解
五、浏览器渲染原理
5.1 浏览器的渲染过程
5.2 浏览器渲染优化
5.3 渲染过程中遇到 JS 文件如何处理?
5.4 什么情况会阻塞渲染?
5.5 CSS 如何阻塞文档解析?
5.6 如何优化关键渲染路径?
5.7 什么是文档的预解析?
六、浏览器本地存储
6.1 浏览器本地存储方式及使用场景
6.2 Cookie、LocalStorage、SessionStorage 区别
6.3 前端储存的方式有哪些?
6.4 Cookie 有哪些字段,作用分别是什么
6.5 IndexedDB 有哪些特点?
七、浏览器同源策略
7.1 什么是同源策略
7.2 如何解决跨域问题?
7.3 正向代理和反向代理的区别
7.4 Nginx 的概念及其工作原理
八、浏览器事件机制
8.1 事件是什么?事件模型?
8.2 对事件委托的理解
8.3 事件委托的使用场景
8.4 对事件循环的理解
8.5 宏任务和微任务分别有哪些
8.6 Node 中的 Event Loop 和浏览器中的有什么区别?process.nextTick 执行顺序?
8.7 如何阻止事件冒泡
8.8 同步和异步的区别
8.9 什么是执行栈
8.10 事件触发的过程是怎样的
九、浏览器垃圾回收机制
9.1 V8 的垃圾回收机制是怎样的
9.2 哪些操作会造成内存泄漏?