浏览器缓存和压缩优化技术

2019-07-08  本文已影响0人  你与时光终会散

一、HTTP缓存机制

高并发下只能通过提升服务器负载解决?
缓存只能做数据库缓存?
启用浏览器缓存

缓存分类
HTTP缓存模型中,如果请求成功会有三种情况

常见状态码

状态码 说明
200 服务器成功返回网页
301/2 永久/临时重定向
304 Not Modified 未修改
307 重定向中保持原有的请求数据
404 请求的网页不存在
503 服务器暂时不可用
500 服务器内部错误

本地缓存
浏览器如果认为本地缓存能使用,不会去请求服务端。
相关header
Pragma:HTTP1.0时代的,该字段被设置未no-cache时,会告知浏览器禁用本地缓存。
Expires:HTTP1.0时代的,缓存过期时间。浏览器与服务器时间无法保持一致,如果差距过大,就会影响缓存结果。
Cache-Control:HTTP1.1,缓存过期的时间间隔。
优先级 Pragma > Cache-Control > Expires

协商缓存
浏览器在本地没有命中的情况下,请求头中发送一定的教验数据到服务端,如果服务端数据没有修改,浏览器使用本地缓存
相关header
Last—Moidfied
If-Modified-Since
ETag HTTP1.1推出,文件的指纹标识符。
If-None-Matche:本地缓存失败,会携带此值去请求服务端

缓存策略的选择
适合缓存的内容
不变的图像、js、css、可下载的内容、媒体文件

建议使用协商缓存
HTML文件、经常替换的图片、经常修改的js、

二、Nginx配置缓存策略

add_header指令:添加状态码为2XX和3XX的响应头信息
add_header name value [awalys’];
可以设置Progma/Expires/Cache-Control,可以继承

本地缓存配置
expires指令:通知浏览器过期时长
expires time;
为负值时表示Cache-Control: no-cache
为正值或者0就表示Cache-Control:max-age=指定的时间

协商缓存配置
etag 默认开启

三、前端代码和资源的压缩

让资源文件更小,传输更快
js、css、图片、html
Gzip压缩

上一篇 下一篇

猜你喜欢

热点阅读