前端性能优化实践之 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 ?

  • 好处

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

  • 客户端 服务端渲染 对比

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

  • 适合场景

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

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


相关文章
|
16天前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
30 3
|
6天前
|
编解码 前端开发 JavaScript
从入门到精通:揭秘前端开发中那些不为人知的优化秘籍!
前端开发是充满无限可能的领域,从初学者到资深专家,每个人都追求更快、更稳定、更用户体验友好的网页。本文介绍了四大优化秘籍:1. HTML的精简与语义化;2. CSS的优雅与高效;3. JavaScript的精简与异步加载;4. 图片与资源的优化。通过这些方法,可以显著提升网页性能和用户体验。
13 3
|
11天前
|
编解码 前端开发 UED
探索无界:前端开发中的响应式设计深度解析与实践####
【10月更文挑战第29天】 本文深入探讨了响应式设计的核心理念,即通过灵活的布局、媒体查询及弹性图片等技术手段,使网站能够在不同设备上提供一致且优质的用户体验。不同于传统摘要概述,本文将以一次具体项目实践为引,逐步剖析响应式设计的关键技术点,分享实战经验与避坑指南,旨在为前端开发者提供一套实用的响应式设计方法论。 ####
36 4
|
15天前
|
缓存 前端开发 JavaScript
前端性能优化:Webpack与Babel的进阶配置与优化策略
【10月更文挑战第28天】在现代Web开发中,Webpack和Babel是不可或缺的工具,分别负责模块打包和ES6+代码转换。本文探讨了它们的进阶配置与优化策略,包括Webpack的代码压缩、缓存优化和代码分割,以及Babel的按需引入polyfill和目标浏览器设置。通过这些优化,可以显著提升应用的加载速度和运行效率,从而改善用户体验。
35 6
|
17天前
|
缓存 监控 前端开发
前端工程化:Webpack与Gulp的构建工具选择与配置优化
【10月更文挑战第26天】前端工程化是现代Web开发的重要趋势,通过将前端代码视为工程来管理,提高了开发效率和质量。本文详细对比了Webpack和Gulp两大主流构建工具的选择与配置优化,并提供了具体示例代码。Webpack擅长模块化打包和资源管理,而Gulp则在任务编写和自动化构建方面更具灵活性。两者各有优势,需根据项目需求进行选择和优化。
47 7
|
16天前
|
缓存 前端开发 JavaScript
前端工程化:Webpack与Gulp的构建工具选择与配置优化
【10月更文挑战第27天】在现代前端开发中,构建工具的选择对项目的效率和可维护性至关重要。本文比较了Webpack和Gulp两个流行的构建工具,介绍了它们的特点和适用场景,并提供了配置优化的最佳实践。Webpack适合大型模块化项目,Gulp则适用于快速自动化构建流程。通过合理的配置优化,可以显著提升构建效率和性能。
30 2
|
17天前
|
前端开发 安全 应用服务中间件
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第26天】随着互联网的快速发展,前端性能调优成为开发者的重要任务。本文探讨了HTTP/2与HTTPS在前端性能优化中的应用,介绍了二进制分帧、多路复用和服务器推送等特性,并通过Nginx配置示例展示了如何启用HTTP/2和HTTPS,以提升Web应用的性能和安全性。
17 3
|
4天前
|
缓存 前端开发 JavaScript
前端性能优化:让你的网站更快、更流畅
前端性能优化:让你的网站更快、更流畅
11 0
|
8天前
|
编解码 前端开发 UED
前端开发中的响应式设计实践
前端开发中的响应式设计实践
21 0
|
Web App开发 存储 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
      前段时间公司hadoop集群宕机,发现是namenode磁盘满了, 清理出部分空间后,重启集群时,重启失败。 又发现集群Secondary namenode 服务也恰恰坏掉,导致所有的操作log持续写入edits.new 文件,等集群宕机的时候文件大小已经达到了丧心病狂的70G+..重启集群报错 加载edits文件失败。
914 0