文档章节

Nginx 手记(六)浏览器缓存

神奇Sam
 神奇Sam
发布于 2017/08/30 14:44
字数 372
阅读 416
收藏 0

一、浏览器缓存

HTTP协议定义的缓存机制(如:Expires;Cache-control等)

1、客户端无缓存

浏览器第一次请求的时候,是没有缓存的,所以会向服务端发起请求获取资源

2、客户端有缓存

浏览器第二次请求的时候,客户端是有缓存的,那么会先在本地校验文件是否过期,如果缓存文件过期,则会请求服务器并进行校验是否修改,如果修改返回新的内容,没修改则会返回304 直接从本地缓存读取,有修改则返回200 并返回新的内容。

二、校验过期机制

1、客户端-校验是否过期:      Expires(1.0版本)、Cache-Control(max-age) (1.1版本)
2、服务端-协议中Etag头信息校验:    Etag(字符串)
3、服务端-Last-Modified头信息校验: Last-Modified(文件修改时间)。不能精准到1s内修改的判断,需要Etag解决

三、配置

在server中的location进行配置

#匹配js和css文件,并设置缓存过期时间为24小时
location ~ .*\.(js|css)$ {
    expires 24; #设置缓存时间为24小时
    #...
}
浏览器控制可以查看相应信息

Response Headers
view source
Accept-Ranges:bytes
Cache-Control:max-age=86400     #nginx中设置的24小时缓存时间
Connection:keep-alive
Content-Length:2543
Content-Type:application/javascript
Date:Mon, 28 Aug 2017 18:21:08 GMT
ETag:"599be4bb-9ef"
Expires:Tue, 29 Aug 2017 18:21:08 GMT
Last-Modified:Tue, 22 Aug 2017 08:00:59 GMT
Server:nginx/1.12.1

© 著作权归作者所有

共有 人打赏支持
神奇Sam
粉丝 22
博文 41
码字总数 27998
作品 0
广州
程序员
《Python自动化运维开发实战》课程配套手记内容列表

自动化实战课程的手记内容手记列表 各位同学,《Python自动化运维开发实战》实战课中的配套手记内容列表如下,供大家参考学习,已经出的手记将参考大家的实际情况进行补充,其他的配套课程整...

幕客技术
01/12
0
0
Multi-Stage Build多阶段Build Docker镜像

我们在上一篇手记 中给大家介绍了如何完全使用Docker搭建Angular开发和测试环境,今天我们接着这个话题给大家看看如果通过Docker部署Angular项目。 我们先看看假如没有Docker,我们一般怎么去...

麦兜搞IT
05/29
0
0
trafficserver 缓存时间未到,显示MISS

trafficserver 缓存时间未到,显示MISS 贵贵的博客2016-08-2639 阅读 缓存时间 贵贵的博客 ( http://blog.linuxphp.org/ ) : 案例一、 最近发现js/css文件无规律的TCPIMSMISS/200导致内容被刷...

贵贵的博客
2016/08/26
0
0
Varnish调优手记

最近公司做活动推广,流量暴增,后端服务器压力山大,导致用户的请求响应时间延长,客户因此抱怨声音很大。   为尽快解决问题,在安排人员不断优化后端代码的同时,考虑在nginx前增加varni...

nmshuishui
2014/05/07
0
0
ubuntu下nginx安装手记

Nginx是一个高性能的HTTP和反向代理服务器. Nginx 使用 Unix 下常用的 './configure && make && make install' 过程来编译安装. configure 脚本确定系统所具有一些特性,特别是 nginx 用来处...

mfcai
2013/01/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Shell特殊符号总结以及cut,sort,wc,uniq,tee,tr,split命令

特殊符号总结一 * 任意个任意字符 ? 任意一个字符 # 注释字符 \ 脱义字符 | 管道符 # #号后的备注被忽略[root@centos01 ~]# ls a.txt # 备注 a.txt[root@centos01 ~]# a=1[root@centos01...

野雪球
44分钟前
2
0
OSChina 周二乱弹 —— 程序员圣衣

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文:分享Skeeter Davis的单曲《The End of the World》 《The End of the World》- Skeeter Davis 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
59分钟前
4
0
[ python import module ] 导入模块

import moudle_name ----> import module_name.py ---> import module_name.py文件路径 -----> sys.path (这里进行查找文件) # from app.web import Personimport app.web.Person as Pe......

_______-
昨天
3
0
Redis性能问题排查解决手册

一、性能相关的数据指标 通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息。通过这些信息来分析文章后面提到的一些性能指标。 nfo命令输出的数据可...

IT--小哥
昨天
2
0
mixin混入

①新建mixin.js文件 const mixin = { methods: { /** * 分页公共方法 */ handleSizeChange(val) { this.pageData.size = val; this.query(); }, hand......

不负好时光
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部