缓存、缓存清理和HTTP缓存
目录
一、缓存
二、缓存清理
三、HTTP缓存
1、Cache-Control(协议头)
2、强制缓存
3、协商缓存
前段时间面试发现缓存这一块的内容问的蛮多的,于是就去学习了一下缓存相关的内容,将问的比较多的内容总结如下:
一、缓存
1、存储将被用到的数据,让数据访问更快
- 命中:在缓中找到了请求的数据存
- 不命中/穿透:缓存中没有需要的数据
- 命中率:命中次数/总次数
- 缓存大小:缓存中一共可以存多少数据
- 清空策略:如果缓存空间不够数据如何被替换
二、缓存清理
1、清空策略
- 先进先出
- 根据使用的频率
- 最近使用(移掉太久没有使用的缓存)
三、HTTP缓存
1、Cache-Control(协议头):
定义所有缓存都要遵守的行为
- 可缓存性:
值 | 含义 |
public | 允许所有方缓存 |
private | 只允许浏览器缓存 |
no-cache | 每次必须先询问服务器资源是否已经更新 |
no-store | 不使用缓存 |
- 缓存期限
值 | 含义 |
max-age | 秒(存储周期) |
s-maxage | 秒(共享缓存如代理等,存储周期) |
2、强制缓存:
强制使用缓存,不去服务器比对;(缓存生效不再发送请求)
3、协商缓存:
协商使用缓存,每次需要向服务器请求对比,缓存生效不传回body
- 协商缓存-1:last-modified:最后一次发请求的时间
- 协商缓存-2:E-Tag
缓存、缓存清理和HTTP缓存相关推荐
- 使用Nginx反向代理和proxy_cache缓存搭建CDN服务器加快Web访问速度
碰到问题:移动用户访问web服务器www.osyunwei.com很慢 解决办法: 1.在移动机房放置一台nginx反向代理服务器 2.通过域名DNS智能解析,所有移动用户访问www.osyunwei ...
- 使用shiro的会话管理和redis缓存管理来构建登录模块spring+struts+hibernate(SSH)
shiro是一个很好用的安全框架,主要表现在用户认证,权限认证,会话管理,如果想优化还可以做Cache管理,我们不需要做太多工作在用户身份token安全方面(记录shiro及用redis开发的步骤及一 ...
- 转载和积累系列 - HTTPS原理和HTTP缓存机制
目录 HTTPS原理 HTTPS HTTPS 的实现原理 为什么数据传输是用对称加密? 为什么需要 CA 认证机构颁发证书? HTTP缓存机制和原理 HTTP报文 缓存规则解析 强制缓存 Expire ...
- 缓存插件 Spring支持EHCache缓存
Spring仅仅是提供了对缓存的支持,但它并没有任何的缓存功能的实现,spring使用的是第三方的缓存框架来实现缓存的功能.其中,spring对EHCache提供了很好的支持. 在介绍Spring的缓 ...
- 剑指offer之java缓存总结,从单机缓存到分布式缓存架构
1.缓存定义 高速数据存储层,提高程序性能 2.为什么要用缓存(读多写少,高并发) 1.提高读取吞吐量 2.提升应用程序性能 3.降低数据库成本 4.减少后端负载 5.消除数据库热点 6.可预测的性能 ...
- php中怎么让图片没有缓存,关于项目中图片缓存的问题
之前用的是iis所以可能没有这些问题,后来换了nginx之后发现图片缓存问题很严重,本项目用的是thinkphp5框架: 浏览器.runtime.session.cookie.加参数,后台,所有缓存都 ...
- java代码中的缓存类怎么找,JAVA缓存的实现 - dreamcloudz的个人空间 - OSCHINA - 中文开源技术交流社区...
缓存可分为二大类: 一.通过文件缓存,顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式: 二.内存缓存,也就是实现一个类中静态Map,对这个Map进行 ...
- 聊一聊安全且正确使用缓存的那些事 —— 关于缓存可靠性、关乎数据一致性
大家好,又见面了. 本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面.如果感兴趣,欢迎关注以获取后续更新. 在上一篇文档<聊一聊作为高并发系 ...
- 让国内顶尖程序员低头的这份面试题之java缓存总结,从单机缓存到分布式缓存架构
1.缓存定义 高速数据存储层,提高程序性能 2.为什么要用缓存(读多写少,高并发) 1.提高读取吞吐量 2.提升应用程序性能 3.降低数据库成本 4.减少后端负载 5.消除数据库热点 6.可预测的性能 ...
最新文章
- 5 修改request对象变量_【总结】前端5大常见设计模式,代码一看你就懂!
- boost::pfr模块编写自己的 io-manipulator 进行打印的测试程序
- 机器学习实践七----异常检测和推荐系统
- 902. 最短编辑距离
- Python 算法之递归与尾递归,斐波那契数列以及汉诺塔的实现
- iOS应用图片命名规则
- iview 后台管理系统 搭建
- 载winpcap4.1.1_搞不清电力电缆载流量?有这一份最新汇总就够了~
- mysql2008完全卸载教程_完美卸载SQL Server 2008的方法
- 基于Html5的移动端APP开发框架
- 如何新浪微博html5,新浪微博接入Html5游戏 注重轻量碎片化
- 代价敏感错误率与代价曲线
- Linux系统命令行常识问答
- python 包络线_Matlab 如何绘制复杂曲线的包络线
- UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xbd in position 115: illegal multibyte sequence
- 【汉字转拼音工具】Java 汉字转拼音
- 【台大郭彦甫】Matlab入门教程超详细学习笔记四:数据类型与文件读写(附PPT链接)
- Core.bitwise_and()函数解释
- 通信工程与计算机考研学校排名,通信工程专业考研学校排名
- Milvus 社区周报- Week 12, 2020
热门文章
- 【FMCW 04】测角-Angle FFT
- 形态学处理梯度、顶帽、黑帽
- 计算机毕业设计源码案例设计基于ssm律师管理系统
- 计算机二级c语言停考,计算机等级考试调整Fortran等语言停考
- Activiti学习(4)简单的请假流程
- 关于AI视觉-如何连接使用智能语音开发套件(USB语音开发套件)
- su自带模型库怎么打开_草图大师出现无法访问3d模型库的操作方法
- java计算机毕业设计汽车站车辆运管系统源码+系统+数据库+lw文档+mybatis+运行部署
- TIVA_C学习笔记三
- bose蓝牙音箱使用说明_蓝牙音箱怎么使用 蓝牙音箱使用方法介绍【详解】