浏览器
浏览器缓存
MEMORY CACHE | DISK CACHE
memory cache 与 disk cache 的区别:
- memory cache 更快
- memory cache 会随着浏览器敞开而回收,disk cache 不会
两者什么时候应用?
200 -> response -> 敞开浏览器 -> 申请雷同地址 -> disk cache -> 刷新 -> memory cache
浏览器帧率
从一个像素渲染到页面的全过程。
回流与重绘
css 树和 dom 树,合并生成渲染树。
产生回流必产生重绘。
垃圾回收
算法有哪几种?别离原理是什么?
- 援用计数:通过计算变量被援用的次数的确是否进行垃圾回收。毛病是当呈现循环援用时,无奈革除;另外就是有工夫开销,要不停监控对象。长处是速度快,发现后立刻回收。
- 标记革除:执行过程分两次,第一次确定变量是否被援用并标记,第二次将未被援用的变量回收并革除标记。毛病是执行两次,回收过程程序终止执行;产生内存碎片;。长处是能够辨认循环援用
- 标记实现:标记革除的根底上减少了对碎片空间的整顿,将碎片挪动并合并成一个间断空间
V8 中应用的是那种?
为了缩小 GC 能够做那些优化?
如何通过 performance 监控浏览器?
如何通过 timeline 找到频繁垃圾回收,缩小阻塞?
计算机
缓存
协商缓存与强缓存
强缓存是指,不间接从服务器中获取数据,间接从缓存中获取,通常是通过服务端设置 http 头实现。
协商缓存是指,服务器与客户端通过标识确定是否从缓存还是服务器中获取资源。
http
http1.1 比 http1 多了 E-Tag,用于协商缓存的字段
http2 多了二进制传输,流媒体之类
http 工作流程
ps. TCP 三次握手:C – 你在吗?-> S – 我在 -> C – 晓得了 -> S
非简略申请比简略申请多了“预检”OPTION
,响应“预检申请”后才开始正式通信。
简略申请:POST, GET, HEAD
非简略其你去:
- DELETE,PATH,PUT
- 发送 json 数据。
- 自定义头部字段
http1.0、http1.1、http2.0、https
http 存在的性能阻碍次要是两个点:带宽与提早。带宽目前通过硬件晋升,提早又分为 3 种,浏览器阻塞、DNS 查问、建设连贯。浏览器阻塞通常是因为浏览器会限度最大连接数,DNS 是查问过程耗费的工夫,建设连贯,通常是 http 协定在 TCP 中通过 3 次握手 4 次挥手。
http1.0 时代,1996 年,次要是解决简略的 html 页面
http1.1 时代,1999 年,减少了 css 与 js 文件,为了放慢网站的加载速度
- 缓存策略,头减少了 Expire,If-Modified-sice
- 裁减了谬误状态码
- 为了适配主机应用虚拟机时,会专用一个 IP,所以减少了 Host 字段。在 http1.1 中,申请和响应都要减少该字段。
-
减少了长连贯,Connect: keep-alive,在一个长连贯下,不必反复建设连贯和敞开连贯的耗费。
- header 压缩
https,参考,默认是 443 端口
C -hash 反对 ->S
S - 公钥加密的认证 ->C
C 验证认证
C - 对称加密(RSA)加密文本和公钥 -> Shttp2.0 时代,基于谷歌剔除的 SPDY 计划做了降级
- 传输用二进制,而不是 http1.* 时的文本
- 反对服务端的 push
- 多路复用:在一个连贯中,即可实现并行,而不是原来有序阻塞。通过将对二进制数据帧进行程序标识,客户端接管到的数据进行合并,而不会呈现错位。因为一个连贯即可实现,所以对服务器来说相当于减少了并发量(原来须要发 4 个连贯,当初一个连贯能达到 4 个连贯的成果)。
- 丰盛缓存类型:协商缓存
- header 压缩
websocket
原理:相似于 http 须要握手,然而不同的是具备长久的链接
头有 upgrade 标识 websocket 通信
跨域
有哪些不必的思考跨域?
script,link,img src 这种不须要思考跨域
跨域的解决方案?
- nginx
- cors
- jsonp 须要后端和前端协商回调函数名
平安
常见的攻打与阻止有哪些?
CSRF
待补充
XSS
待补充
source-map
源码解析
中间人攻打
待补充
从浏览器输出 URL 到返回页面的过程
参考