比Gzip压缩效率更高的 Brotli

Brotli是一种比Gzip压缩效率更高的压缩算法。实测会有20%左右的体积降低。Brotli的压缩时间和CPU占用会比Gzip高,解压时间比Gzip低。相当于通过牺牲部分服务端性能来提升资源请求加载速度,硬件条件较好情况下,是一种不错的选...

MongoDB高可用部署

常用的MongoDB高可用架构方案一般是基于副本集的一主N从架构,本文使用一主一从一仲裁的架构做部署。使用一主一从一仲裁而不是一主二从的架构原因是,一主一从基本可以满足需求,仲裁节点无硬件配置要求,仲裁节点服务器可以继续做其他服务。 假设目...

现代浏览器Cookie限制

IETF 标准RFC 2965(定义 cookie 如何工作的文档)指定 cookie 的键或值大小不应有最大长度,并鼓励实现支持任意大的 cookie。详情见 IETF rfc2965 实际测试测试可写入Cookie数量每个值1000个字...

Web push 浏览器推送

Web push 是PWA的关键技术之一,最近详细了解了一下 Web push 的原理及实现。 原理借用W3C Push api文档上的一张图: 上图中的 web page、serice worker、user agent 为浏览器端;浏...

本地开发启用HTTPS

现在众多网站或者浏览器的API都需要启用HTTPS,本地如果无法启用HTTPS就会有诸多开发的不便。 其实本地开发启用HTTPS只需要简单几步就可以搞定: 生成加密证书对执行以下命令 openssl req -x509 -out loca...

Nginx 开启支持 HTTP2

/
HTTP2的好处 Server Push 主动推送资源 (目前nginx还不支持,新版本nodeJs可以配置实现) 用帧二进制编码传输数据,连接可以承载任意数量的双向数据流 (所以不用关心,请求的数量了) 头部压缩,减少请求时间 版本要求...

BFC、IFC

参考w3c visual-model-intro 章节, 9.4 Normal flow BFC 块级格式上下文形成BFC的情况 浮动的元素 绝对定位的元素 overflow不为visible的元素 (除非该值已经被传播到视口, 比如bo...

基于JWT的登录验证系统实现

概述 基于JWT的简单登录认证流程图: JWT JSON Web token(JWT)是一种开放标准(RFC 7519),它定义了一种紧凑且独立的方式,用于将各方之间的信息安全地传输为JSON对象。该信息可以通过数字签名进行验证和信任。使...