# 问题解决
### 1\. 浏览器什么时候将资源放置在缓存中(比较常见的是硬盘和磁盘两种)
###### 实现方案:通过对请求头设置Cache-Control字段
在HTTP/1.1中,Cache-Control是最重要的规则,主要用于控制网页缓存,主要取值为:
* public:所有内容都将被缓存(客户端和代理服务器都可缓存)
* private:所有内容只有客户端可以缓存,Cache-Control的默认取值
* no-cache:客户端缓存内容,但是是否使用缓存则需要经过协商缓存来验证决定
* no-store:所有内容都不会被缓存,即不使用强制缓存,也不使用协商缓存
* max-age=xxx (xxx is numeric):缓存内容将在xxx秒后失效
##### 总结:
较好的方式是使用no-cache方式,也就是协商缓存,请求服务资源判断是否是最新
### 2\. 浏览器将什么资源放在内存,什么资源放磁盘?
1. 对于大文件来说,大概率是不存在内存总的,反之优先
2. 当前系统内存使用高的话,文件有限存储进硬盘
### 3\. 浏览器怎么将允许进行缓存的内容存到相应位置。
1. 这部分的实现逻辑是浏览器的内部功能,将相应的资源存放到相应位置
#### 4\. 使用Nginx实现代理缓存
1. 使用Nginx的优势:
nginx缓存,可以在一定程度上,减少源服务器的处理请求压力。 因为静态文件(比如css,js, 图片)中,很多都是不经常更新的。nginx使用proxy\_cache将用户的请求缓存到本地一个目录。下一个相同请求可以直接调取缓存文件,就不用去请求服务器了。 IO密集型服务的处理是nginx的强项。
[Nginx配置](https://www.cnblogs.com/walls/p/9017821.html)