奥丁9
奥丁9
后端
数据库
redis
mysql
mongoDB
达梦
php
laravel
laravel-admin
dcat
表单
表格
java
spring
python
go
c
c++
前端
vue
nodejs
sass/less
html/css
前端框架
javascript
微信生态
公众号
小程序
uniapp
typescript
其他
AI
数据结构
安全
linux
seo
git
健身
算法
正则表达式
docker
待分类
前端
/
微信生态
微信浏览器(公众号)缓存问题和http缓存学习
2个月前
aoding9
76
公众号
问题描述:微信公众号,H5页面,缓存index.html,导致访问空白异常。 文章来源:https://www.cnblogs.com/wuyun-blog/p/15729849.html 解决措施:服务端响应头 设置(待验证) ServletActionContext.getResponse().setHeader("Cache-Control","no-store"); // ServletActionContext.getResponse().setHeader("Cache-Control","no-cache"); ServletActionContext.getResponse().setHeader("Expires","-1"); ServletActionContext.getResponse().setHeader("Pragma","no-cache"); 要想解决该问题,首先要了解下http缓存的机制,具体如下: 1)http头缓存设置 1.Cache-Control 请求/响应头,缓存控制字段,可以说是控制http缓存的最高指令,要不要缓存也是它说了算。 它有以下常用值 1.1 no-store:所有内容都不缓存 1.2 no-cache:缓存,但是浏览器使用缓存前,都会请求服务器判断缓存资源是否是最新,它是个比较高贵的存在,因为它只用不过期的缓存。 1.3 max-age=x(单位秒) 请求缓存后的X秒不再发起请求,属于http1.1属性,与下方Expires(http1.0属性)类似,但优先级要比Expires高。 1.4 s-maxage=x(单位秒) 代理服务器请求源站缓存后的X秒不再发起请求,只对CDN缓存有效(这个在后面会细说) 1.5 public 客户端和代理服务器(CDN)都可缓存 1.6 private 只有客户端可以缓存 2.Expires 响应头,代表资源过期时间,由服务器返回提供,GMT格式日期,是http1.0的属性,在与max-age(http1.1)共存的情况下,优先级要低。 3.Last-Modified 响应头,资源最新修改时间,由服务器告诉浏览器。 4.if-Modified-Since 请求头,资源最新修改时间,由浏览器告诉服务器(其实就是上次服务器给的Last-Modified,请求又还给服务器对比),和Last-Modified是一对,它两会进行对比。 5.Etag 响应头,资源标识,由服务器告诉浏览器。 6.if-None-Match 请求头,缓存资源标识,由浏览器告诉服务器(其实就是上次服务器给的Etag),和Etag是一对,它两会进行对比。 具体可见该博客地址,很详细,值得学习。 转自:https://www.cnblogs.com/echolun/p/9419517.html  2)http请求,响应状态码区别 浏览器缓存 from memory cache与from disk cache详解
本作品采用
《CC 协议》
,转载必须注明作者和本文链接