请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

我使用https发现data数据没有从浏览器缓存读取。

这是nginx的配置

server {
    listen       443;
    server_name  localhost;
    http2_push_preload on;

    ssl                  on;
    ssl_certificate      cert/localhost-cert.pem;
    ssl_certificate_key  cert/localhost-privkey.pem;

    location / {
    	proxy_cache my_cache;
		proxy_pass http://127.0.0.1:8888/;
    }
}

这是被代理的服务器nodejs的部分代码

http.createServer((req, res) => {

if (req.url === '/') {
const html = fs.readFileSync('index.html', 'utf8')
res.writeHead(200, {
'content-type': 'text/html',
})
res.end(html)
}

if (req.url === '/data') {
res.writeHead(200, {
'Cache-Control': 'max-age=800, s-maxage=2'
})
wait(2).then(()=> {
res.end('success');
})
}
}).listen('8888')

这是返回结果的两份截图

https://img1.sycdn.imooc.com//szimg/5b2b50ba00015d9312240178.jpg

https://img1.sycdn.imooc.com//szimg/5b2b50ba0001060e11620585.jpg

问题:

  1. 证书被chrome不可信所以才导致无法从浏览器缓存读取的吗?

  2. favicon.ico这个图片虽然没有,为什么回花费1min时间去加载

  3. 请求后返回文件中`6fbe4358-ac9f-4148-8e67-3c453d2ab528`是做什么用的?

正在回答

2回答

Jokcy 2018-06-21 18:19:34
  1. 正常来讲是可以读取缓存的,你说的原因也有可能,也有可能是你浏览器设置的问题。

  2. 因为你服务器没有做出响应,过了超时时间浏览器自动处理楼。

  3. 没看到详细的请求内容,不清楚

0 回复 有任何疑惑可以回复我~
  • 提问者 edgex #1
    1. 浏览器我没设置disable-cache
    2. 为什么我的浏览器会主动请求favicon.ico而我看到老师的没有请求,这个超时时间在哪设置?
    回复 有任何疑惑可以回复我~ 2018-06-21 19:09:59
  • Jokcy 回复 提问者 edgex #2
    favicon.ico是标签页的图标,如果你没有主动设置这个图标的地址,浏览器默认请求/favicon.ico
    回复 有任何疑惑可以回复我~ 2018-06-25 12:58:59
小小奥 2019-02-14 15:21:39

我也一样,而且我在火狐浏览器上试,看到了请求头的信息为max-age=0,这个可以用科学来解释吗?

0 回复 有任何疑惑可以回复我~
  • Jokcy #1
    应该是你在开发工具里面设置过,比如chrome的devtool有一个在打开开发者工具之后禁用缓存的设置,你可以找找
    回复 有任何疑惑可以回复我~ 2019-02-14 15:56:25
  • 小小奥 回复 Jokcy #2
    谢谢老师,我后来使用了http1.1就可以缓存了,好像是Chrome浏览器不允许我在不安全的网站下,使用缓存的资源。
    回复 有任何疑惑可以回复我~ 2019-02-15 15:58:01
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信