前端八股文--浏览器篇

# 浏览器原理知识大纲

# 一、浏览器安全

# 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.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 哪些操作会造成内存泄漏?