浏览器

260 阅读3分钟

存储

cookie,localStorage,sessionStorage,indexDB
cookie大小不超过4kb
localStorage2.5-10M之间
IndexedDB 可存储至少250M,建立索引,提供接口查找。

Service Worker

Service Worker 是运行在浏览器背后的独立线程,一般可以用来实现缓存功能。使用 Service Worker的话,传输协议必须为 HTTPS。因为 Service Worker 中涉及到请求拦截,所以必须使用 HTTPS 协议来保障安全。

它的特性包括推送消息,离线、数据同步、后台编译,拦截和处理网络请求。

缓存位置

Service Worker
Memory Cache
Disk Cache
Push Cache
网络请求

安全问题

xxs攻击?

攻击者想尽一切办法将可以执行的代码注入到网页中。
攻击的代码被服务端写入进数据库中,这种攻击危害性很大,因为如果网站访问量很大的话,就会导致大量正常访问页面的用户都受到攻击。
    <script>alert(1)</script> 
    //转义字符 引号 尖括号 斜杠 
    //csp 建立白名单
        设置 HTTP Header 中的 Content-Security-Policy
        设置 meta 标签的方式 <meta http-equiv="Content-Security-Policy">

XSRF

XSRF 中文名为跨站请求伪造。原理就是攻击者构造出一个后端请求地址,诱导用户点击或者通过某些途径自动发起请求。如果用户是在登录状态下的话,后端就以为是用户在操作,从而进行相应的逻辑。
防范 CSRF 攻击可以遵循以下几种规则:
Get 请求不对数据进行修改
不让第三方网站访问到用户 Cookie  设置 SameSite 属性
阻止第三方网站请求接口           验证 Referer
请求时附带验证信息,             验证 Token 是否有效

点击劫持

点击劫持是一种视觉欺骗的攻击手段。
X-FRAME-OPTIONS
JS防御

中间人攻击

中间人攻击是攻击方同时与服务端和客户端建立起了连接,并让对方认为连接是安全的,但是实际上整个通信过程都被攻击者控制了。攻击者不仅能获得双方的通信信息,还能修改通信信息。
HTTPS 就可以用来防御中间人攻击

性能优化

www.cnblogs.com/fangshidaim…

网页性能优化

减少http请求次数

减少DNS查询次数

避免页面跳转

缓存Ajax

延迟加载

提前加载

减少DOM元素数量

根据域名划分内容

减少iframe数量

避免404

服务器优化

使用CDN

添加Expires 或Cache-Control报文头

Gzip压缩传输文件

配置ETags

尽早flush输出

使用GET Ajax请求

避免空的图片src

cookie

减少Cookie大小

页面内容使用无cookie域名

javascript

将脚本置底

使用外部Javascirpt和CSS文件

精简Javascript和CSS

去除重复脚本

减少DOM访问

使用智能事件处理 图片 优化图像

优化CSS Sprite

不要在HTML中缩放图片

使用小且可缓存的favicon.ico

移动客户端 保持单个内容小于25KB

打包组建成符合文档

DNS预解析 rel="dns-prefetch"

节流与防抖

预加载

预渲染 rel="prerender"

CDN 静态资源尽量使用CDN加载,需要注意CDN域名要与主站不同,否则每次请求都会带上主站的 Cookie,平白消耗流量。

 减少重绘重排
 requestAnimationFrame
 createDocumentFragment

Timeline面板

蓝色:网络通信和HTML解析 黄色:JavaScript执行 紫色:样式计算和布局,即重排 绿色:重绘

window.requestAnimationFrame()

推迟到下一次重新渲染 可分离读写操作

window.requestIdleCallback(fn)

//指定只有当一帧的末尾有空闲时间,才会执行回调函数。

大多数显示器的刷新频率是60Hz

如果网页动画能够做到每秒60帧,就会跟显示器同步刷新,达到最佳的视觉效果。
一秒之间能够完成多少次重新渲染,这个指标就被称为"刷新率",英文为FPS(frame per second)。60次重新渲染,就是60FPS。