http 中的缓存
如何判断缓存新鲜度
- If-Modified-Since告诉服务器, 在服务器中的响应报文中有一个Last-Modified字段, 如果两者一直则表示在浏览器中缓存的文件是最新的, 可以直接使用浏览器缓存中的副本
- If-None-Match字段告诉服务器, 它的值为ETag的id号, 如果服务器端的Etag的id号与这个字段一直则使用缓存中的数据, 返回304
在request中有关cache的字段
- Cache-Control: no-cache 不使用缓存
- If-Modified-Since
- If-None-Match
- Cache-Control: max-age, 缓存文件在浏览器端缓存的时间
response中有关cache的字段
- Cache-Control: public, 公有缓存
- Cache-Control: private, 私有缓存
- Cache-Control: no-store, 禁止使用缓存
- Date: 响应发送的时间
- Expires: 缓存失效的时间
- Last-Modified: 服务器端文件的最后修改时间
- ETag: "67adsfaf908", 和request中的If-None-Match进行比较, 如果一样则让浏览器直接使用放在缓存中的数据
注意
- 对于缓存有效的判断, 先根据Cache-Control中的max-age判断, 如果没有这个key-value则通过Expires进行判断
304响应过程
- 浏览器发送request给服务器 -> 浏览器先检查在本地缓存中是否已经有了这个资源 -> 如果有了则获取其中的If-Modified-Since, 构成响应报文, 发送给服务器端 -> 服务器端通过If-Modified-Since和响应的Last-Modified的值进行比较, 如果一致则表示在浏览器中缓存的数据就是最新的数据, 于是服务器发送304状态码的响应 -> 浏览器从本地缓存中获取资源
http 中的缓存的更多相关文章
- [原创]关于mybatis中一级缓存和二级缓存的简单介绍
关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...
- 清除oracle中的缓存(具体细节未知, 慎用)
oracle中的缓存主要是指SGA中的:1.share pool2.database buffer cache清空命令如下:首先要登录到sqlplus命令下,输入如下命令即可:SQL> alte ...
- AngularJS中的缓存
欢迎大家指导与讨论 : ) 缓存篇 一个缓存就是一个组件,它可以透明地储存数据,以便以后可以更快地服务于请求.多次重复地获取资源可能会导致数据重复,消耗时间.因此缓存适用于变化性不大的一些数据,缓存能 ...
- 如何在 apache 中设置缓存有效时间
今天学习了下如何在 apache 中设置缓存时间,记之以备忘. 在 http 报文头中,与缓存时间有关的两个字段是 Expires 以及 Cache-Control 中的 max-age,Expire ...
- 谈谈MVC项目中的缓存功能设计的相关问题
本文收集一些关于项目中为什么需要使用缓存功能,以及怎么使用等,在实际开发中对缓存的设计的考虑 为什么需要讨论缓存呢? 缓存是一个中大型系统所必须考虑的问题.为了避免每次请求都去访问后台的资源(例如数据 ...
- iOS中dyld缓存的实现原理是怎样的?
在iOS开发中,为了提升系统的安全性,很多系统库文件都被打包到一个缓存的文件当中即dyld缓存,那大家对dyld缓存了解多少呢?今天小编将和大家分享的就是一位iOS大神对dyld缓存的使用分析,一起来 ...
- angular中$cacheFactory缓存的使用
最近在学习使用angular,慢慢从jquery ui转型到用ng开发,发现了很多不同点,继续学习吧: 首先创建一个服务,以便在项目中的controller中引用,服务有几种存在形式,factory( ...
- 如何在 Linux 中清除缓存(Cache)
如何在 Linux 中清除缓存(Cache) 方法一: http://mp.weixin.qq.com/s?__biz=MjM5ODAzODgyMQ==&am ...
- 菜鸟-手把手教你把Acegi应用到实际项目中(7)-缓存用户信息
首先讲讲EhCache.在默认情况下,即在用户未提供自身配置文件ehcache.xml或ehcache-failsafe.xml时,EhCache会依据其自身Jar存档包含的ehcache-fails ...
- HTTP请求中浏览器缓存
本文导读:浏览器缓存机制,其实主要就是HTTP协议定义的缓存机制.客户端缓存是否需要是可以在服务端代码上控制的.那就是响应头.响应头告诉缓存器不要保留缓存,缓存器就不会缓存相应内容:如果请求信息是需要 ...
随机推荐
- 【OD深入学习】Java多线程面试题
一.参考文章 1. Java线程面试题 Top 50 2. Java面试——多线程面试题 3. JAVA多线程和并发基础面试问答 4. 15个顶级Java多线程面试题及回答 二.逐个解答 三.一语中的 ...
- Java—多线程实现PV效果
前言 还记得今年参加自学操作系统考试,最难分析的就是PV这部分,然而伟大的米老师却用一个放东西吃东西的小例子,把PV讲的栩栩如生,言简意赅.学J2SE时学到了线程部分,里面提到了线程同步,死锁问题等等 ...
- 51nod1453(排列组合)
题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1453 题意: 中文题诶~ 思路: 因为最后一个球总是在编号比 ...
- Java foreach remove问题分析
原文链接:http://www.cnblogs.com/chrischennx/p/9610853.html 都说ArrayList在用foreach循环的时候,不能add元素,也不能remove元素 ...
- 模板【洛谷P3811】 【模板】乘法逆元
P3811 [模板]乘法逆元 给定n,p求1~n中所有整数在模p意义下的乘法逆元. T两个点的费马小定理求法: code: #include <iostream> #include < ...
- luogu4240 毒瘤之神的考验(毒瘤乌斯反演)
link 题意:求出\(\sum_{i=1}^n\sum_{j=1}^m\varphi(ij)\),对998244353取模 多组数据,\(T\le 10^4,n,m\le 10^5\). 前置知识: ...
- c#随笔-正则
- HackerRank - array-partition 并查集
https://vjudge.net/contest/279745#problem/G 每次将质数的倍数放进一个集合中,那么如果最后的集合数为n的话: 方案数: 2^n -2 : #include&l ...
- ribbon负载均衡
ribbon的负载均衡策略有很多 IRule 这是所有负载均衡策略的父接口,里边的核心方法就是choose方法,用来选择一个服务实例. AbstractLoadBalancerRule Abstrac ...
- spring-redis 存储数据
package com.fndsoft.bcis.utils; import org.springframework.beans.factory.annotation.Autowired;import ...