浏览器缓存详解编程语言
2023-06-13 09:20:22 时间
一. 强缓存和协商缓存
第一次请求资源时,会根据http头部信息判断是否缓存;
第二次请求资源时,会先判断是否命中强缓存(Cache-Control和Expires),如果是则直接获取资源,本次请求不会与服务器进行通信;如果没有命中,则会携带第一次请求时返回有关缓存的头部信息(Last-Modified/If-Modified-Since 和 Etag/If-None-Match);若命中则直接获取缓存资源,否则获取新资源。
Expires:http1.0,GMT格式的时间字符串,缓存有效的截止时间; Cache-Control:max-age=10000:http1.1,相对值,资源第一次请求时间和设定的有效期计算出一个资源过期时间,再拿这个时间和当前时间比较;
还有几个常用值no-cache(不使用强缓存),no-store(禁止缓存数据),public(可被所有用户缓存),private(只允许终端用户缓存); Cache-Control优先级高于Expires;
三. 协商缓存header
第一次请求响应头带上Last-Modified/Etag,则后续请求会带上If-Modified/If-None-Match; Last-Modified:GMT格式,最后修改时间;If-Modified-Since:也是GMT格式,判断而这是否一样;如果命中缓存,则返回304,并且不会返回资源内容,不会返回Last-Modify; Etag/If-None-Match:服务器生成的唯一标识字符串,与Last-Modified不同的是,当服务器返回304时,由于Etag重新生成过,所以头部信息还是会把这个Etag返回,即使没变化; 为什么有了Last-Modified还要Etag:一些文件周期性更改,但内容不变;有些文件修改频繁,1s内修改多次;某些服务器不能精确得到文件最后修改时间;Etag优先于Last-Modified验证。
四. cookie session localStorage sessionStorage
cookie通常保存在浏览器,session通常保存在服务器端,一般来说当服务器收到请求要创建session时,首先会在客户端监测是否包含sessionid,如果有则根据id返回session;没有的话创建新的sessionid并相应给客户端;通常使用cookie存储sessionid。 单个cookie不超过4kb,session无大小限制; localStorage和sessionStorage一般都是5Mb,前者是永久的,后者关闭页面即失效;通用方法:setItem(key, value),getItem(key),removeItem(key),clear(),key(index);
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/7510.html
c相关文章
- CSS写一个圣诞树Chrome浏览器小插件
- vue浏览器缓存问题_vue兼容浏览器能兼容到几
- js清除浏览器缓存的几种方法(项目总结)「建议收藏」
- vue项目更新后清除浏览器缓存
- php清除浏览器缓存代码,js清除浏览器缓存
- php 清楚浏览器缓存,如何清除浏览器缓存「建议收藏」
- Ubuntu安装超好用的Edge浏览器
- Google浏览器清除缓存怎么弄_谷歌浏览器f12清理缓存
- 浏览器dns缓存清理_怎么清除ip地址缓存
- 从进程,线程去了解浏览器内部的流程原理
- 浏览器原理 - 事件循环
- Mozilla“大发雷霆”:指责 Google、苹果和微软强迫用户用默认浏览器
- 后Kubernetes时代的未来?Wasmer 3.0 发布,可在浏览器外运行 WebAssembly
- 浏览器缓存 Last-Modified / Etag / Expires / Cache-Control 详解
- UIWebView的使用,简单浏览器的实现详解手机开发
- [javaEE] 控制浏览器缓存资源详解编程语言
- Dooble是用Qt4写的另外一款WebKit浏览器,主要在保护用户隐私方面取胜。虽然它和其他浏览器提供的安全性相差不打,但是也有一些特有的属性比如内含的桌面等。Dooble桌面使得用户可以在增加桌面背景的同时添加应用程序启动,除了从软件包管理器安装外,还可以使用Ubuntu 10.10版本0.07安装,此时的Dooble版本为1.14,同时还要有Qt编码工具如qt4-qmake等。
- 关闭浏览器,清理Redis缓存(浏览器关闭清除redis)
- 屏蔽浏览器缓存另类方法
- javascript浏览器判断绑定事件arguments转换数组数组遍历
- asp.net客户端浏览器缓存的Http头介绍
- js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
- js、css、img等浏览器缓存问题的2种解决方案
- 使用PHPcurl模拟浏览器抓取网站信息
- php导出csv数据在浏览器中输出提供下载或保存到文件的示例
- jQuery浏览器CSS3特写兼容实例