根据 Google-speed 的优化网页速度

https://developers.google.com/speed/pagespeed/insights/?url

Google 提供的测试网站优化策略测试地址

根据测试结果,做出以下两个调整:

1 浏览器在请求头 head 中会设置 accept-encoding 值为 gzip, deflate,表明自己支持 这两种压缩方式,web浏览器收到请求后,就会判断是否支持,返回对应的压缩结果,压缩之后,就会节省网络传输时间,我的服务器是Nginx ,这里记录我的服务器 Nginx 对 Gzip 的设置。

$root@iZm5eabkgmsfy2phj5pr1xZ:~# vim /etc/nginx/nginx.conf


# 在 Gzip 模块中
    gzip on; #开启gzip模块
    gzip_min_length  1k; #超过1K的压缩 默认为0
    gzip_buffers     4 16k;
    #gzip_http_version 1.1; #因为我的服务器用的是http2
    gzip_comp_level 5; #压缩级别 越大越消耗cpu ,压缩比例越大
    gzip_types       text/plain application/javascript application/json  text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_disable "MSIE [1-6]\."; #禁用ie6

查看 Request Header 中的 Content-encoding:gzip

这里写图片描述

2 使用浏览器缓存

在 HTTP 标头中为静态资源设置过期日期或最长存在时间,可指示浏览器从本地磁盘中加载以前下载的资源,而不是通过网络加载。

将Expires设为将来日期,至少为一周,最多为一年(我们倾向于设置Expires,而不设置Cache-Control: max-age,因为前者受支持的范围更为广泛)。请勿将其设为超过一年的将来日期,因为这样就违反了RFC准则。 —— 引用自Google

# 设置缓存时间即可 

##laravel5.4 下

$expires_time = gmdate('D, d M Y H:i:s \G\M\T', time() + $expires);
    return response($html)
        ->header('Cache-Control', "max-age={$expires},public")
        ->header('Expires', $expires_time);

## yaf Rest方式下

  date_default_timezone_set('PRC');
  $time=time();
  $interval=3600*12;//12小时
  header('Expires: '.gmdate('r',($time+$interval)));
  header('Last-Modified: '.gmdate('r',$time));
  header('Content-Type: application/json; charset=utf-8', true, $this->code);
  header('Cache-Control: max-age='.$interval, true, $this->code);

这里写图片描述

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页