前端性能优化实践之 GZIP http2(6)

简介: 前端性能优化实践之 GZIP http2(6)

1、Gzip 经典且实用

网络异常,图片无法展示
|

  • 如何配置 Nginx 启动 Gzip ?
1、mac 安装 homebrew https://brew.sh/
 2、安装 nginx brew i nginx
 3、
复制代码

网络异常,图片无法展示
|

  • 然后 就可 看到配置文件 端口
  • 然后将自己打包的 build 文件夹 放到 nginx 服务器上, 此处 需要将打包 build 放在一个位置,然后 nginx 配置 找到这个地方

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 然后 wq 保存退出

网络异常,图片无法展示
|

  • 刷新页面 localhost:80 非常nice !

网络异常,图片无法展示
|

  • 当前我们看一下  没有压缩的 大小 主要看 bundle.js 文件

网络异常,图片无法展示
|

  • 接下来 就是 配置一下 Gzip 压缩  

网络异常,图片无法展示
|

  • 这个地方 容易敲错 导致不生效 放出来
gzip_disable "msie6";
    gzip_comp_level 6;
    gzip_min_length 1100;
    gzip_proxied any;
    gzip_types
       text/plain
       text/css
       text/js
       text/xml
       text/javascript
       application/javascript
       application/x-javascript
       application/json
       application/xml
       application/rss+xml
       image/svg+xml/javascript;
       gzip_static on;
    gzip_vary on;
    gzip_buffers 4 16k;
    gzip_http_version 1.1;
复制代码
  • 压缩后 bundle.js 文件大小 ,非常 nice的进行了 压缩 !

网络异常,图片无法展示
|

  • 还有一个问题 brew-core 有问题 解决一下
  • 安装时 出现 这个问题 怎么解决
    网络异常,图片无法展示
    |

  • 这直接输入这个git config --global --unset http.proxy
  • 问题解决 非常 nice ~

网络异常,图片无法展示
|

2、启用 keep-alive  ? 参数:设置超时时长和最大请求数

网络异常,图片无法展示
|

  • 可以在两个地方 看到这个详细的信息
1、network
 2、终端 命令行 curl -v http://127.0.0.1:80 可以看到请求返回的详细信息
复制代码
  • network

网络异常,图片无法展示
|

  • 终端 命令行

网络异常,图片无法展示
|

  • 我们需要 在 nignx 配置一下

网络异常,图片无法展示
|

  • timeout:指定了一个空闲连接需要保持打开状态的最小时长(以秒为单位)
  • requests:在连接关闭之前,在此连接可以发送的请求的最大值

3、http 资源缓存 ? (重要 蛮多 )

网络异常,图片无法展示
|

  • 重要的部分html 一般进行协商缓存/不缓存,用户需要拿到最新的资源 , js/css 需要进行缓存

网络异常,图片无法展示
|

  • nginx 如何 配置 这个地方 暂时不敲了,配置之后 可看到 对应的缓存时间

网络异常,图片无法展示
|

  • Google 会使用 serviceworker  来帮助缓存

4、 service workers ?

  • 离线存储资源,使得离线后还可访问,会存在 客户端,常规只存储基本的 js css html , 不要存储 mp4 大图片

网络异常,图片无法展示
|

  • 尝试使用 它

create-react-app.dev/docs/making…

直接在 index.js 更改一下配置

网络异常,图片无法展示
|

  • 详细 原理部分 后续 补上

网络异常,图片无法展示
|

5、 http2 的升级 ?

  • 适合场景

网络异常,图片无法展示
|

  • 知乎 挺多的 h2

网络异常,图片无法展示
|

  • 对比 http1 http2 有什么优势?
1、安全性 h1采取文本传输方式 h2 采取二进制传输方式
  2、多路复用,可以同时发起/接受多个请求
  3、server push 
复制代码

1 server push

网络异常,图片无法展示
|

2 多路复用

网络异常,图片无法展示
|

3 二进制传输

网络异常,图片无法展示
|

4 头部压缩

网络异常,图片无法展示
|

  • 多说一句 https

网络异常,图片无法展示
|

  • 如何生成一个 自己的个人签名证书  ssl 证书

敲下面这几个命令

// 辅助得到私钥
openssl genrsa -des3 -passout pass:x -out server.pass.key 2048
// 得到私钥
openssl rsa -passin pass:x -in server.pass.key -out server.key 
// 生成 csr
openssl req -new -key server.key -out server.csr 
openssl x509 -req -sha256 -days 3650 -in server.csr -signkey server.key -out server.crt 
复制代码
  • 敲完之后 就可得到这个

网络异常,图片无法展示
|

  • 需要找到 位置 为下面配置 准备 直接在文件搜索 名称就可拿到 然后时间排序一下
  • 如何配置 nginx 实现 http2 ?
#
    server {
        listen       443 ssl http2;
        server_name  localhost;
        ssl on;
        ssl_certificate      /Users/fhj/Desktop/server/server.crt;
        ssl_certificate_key  /Users/fhj/Desktop/server/server.key;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        location / {
            root   /Users/fhj/Desktop/build;
            index  index.html index.htm;
        }
    }
复制代码

网络异常,图片无法展示
|

  • 有个小插曲

网络异常,图片无法展示
|

  • 页面效果展示  成功使用了 h2 非常的开心 !!!

网络异常,图片无法展示
|

  • 当然 重点应该是 看 请求数量和速度 ,不过 因为本地 demo 很简单,并不能看出 明显提升,技术实验场景也非常重要 ~

6、服务端渲染  SSR ?

  • 好处

网络异常,图片无法展示
|

  • 客户端 服务端渲染 对比

网络异常,图片无法展示
|

  • 适合场景

网络异常,图片无法展示
|

网络异常,图片无法展示
|


相关文章
|
8月前
|
数据采集 数据可视化 API
QUIC协议优化:HTTP/3环境下的超高速异步抓取方案
本文介绍了一种基于QUIC和HTTP/3的异步爬虫方案,用于抓取知乎热榜数据并生成趋势图。通过HTTPX与aioquic结合实现高性能连接复用,配合代理IP绕过反爬限制,提取标题、热度等信息。利用Python代码示例展示了异步抓取流程,并借助Matplotlib绘制话题热度变化图表。分析显示突发热点生命周期短,而深度话题热度更稳定。此方案可优化内容运营策略,快速捕捉潜在爆款话题。
373 4
QUIC协议优化:HTTP/3环境下的超高速异步抓取方案
|
3月前
|
缓存 负载均衡 网络协议
HTTP 与 SOCKS5 代理协议:企业级选型指南与工程化实践
面向企业网络与数据团队的代理协议选型与治理指南,基于流量特征选择HTTP或SOCKS5协议,通过多协议网关统一出站,结合托管网络降低复杂度,实现稳定吞吐、可预测时延与合规落地。
|
4月前
|
存储 前端开发 安全
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
234 5
|
7月前
|
前端开发 JavaScript 索引
前端性能优化:虚拟滚动技术原理与实战
前端性能优化:虚拟滚动技术原理与实战
938 80
|
7月前
|
缓存 监控 前端开发
前端性能优化:现代框架的关键策略
前端性能优化:现代框架的关键策略
382 74
|
7月前
|
缓存 前端开发 JavaScript
前端性能优化:打造流畅的用户体验
前端性能优化:打造流畅的用户体验
|
5月前
|
数据采集 Web App开发 JSON
Python爬虫基本原理与HTTP协议详解:从入门到实践
本文介绍了Python爬虫的核心知识,涵盖HTTP协议基础、请求与响应流程、常用库(如requests、BeautifulSoup)、反爬应对策略及实战案例(如爬取豆瓣电影Top250),帮助读者系统掌握数据采集技能。
492 0
|
7月前
|
Web App开发 网络协议 应用服务中间件
HTTP2.0 从原理到实践,保证把你治得服服帖帖!
HTTP/2 是 HTTP/1.1 的重要升级,通过多路复用、头部压缩、服务器推送等特性显著提升性能与效率。本文详细解析了 HTTP/2 的优势、配置方法及实际应用,涵盖 Nginx/Apache/IIS 配置、curl 测试工具使用,并对比 HTTP/1.1 指出其优化点。同时提醒需注意 HTTPS 支持、客户端兼容性等问题,助你高效掌握并运用 HTTP/2 技术。
832 5
HTTP2.0 从原理到实践,保证把你治得服服帖帖!
|
8月前
|
存储 消息中间件 前端开发
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
490 4
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
|
8月前
|
网络协议 API 开发者
分析http.client与requests在Python中的性能差异并优化。
合理地选择 `http.client`和 `requests`库以及在此基础上优化代码,可以帮助你的Python网络编程更加顺利,无论是在性能还是在易用性上。我们通常推荐使用 `requests`库,因为它的易用性。对于需要大量详细控制的任务,或者对性能有严格要求的情况,可以考虑使用 `http.client`库。同时,不断优化并管理员连接、设定合理超时和重试都是提高网络访问效率和稳定性的好方式。
198 19