web缓存
浏览器缓存(客户端缓存):
浏览器缓存这个概念,对于经常用浏览器来浏览信息的用户来说并不十分陌生。用户也许在用浏览器浏览信息时,经常使用"返回"和"后退"的浏览功能,调用你以前阅读过的页面,这时,你会发现显示速度是很快的,其实这些你刚调出来的内容就放在计算机的缓存中,而不需要再次从Internet上重新传输数据,这样就会给用户造成了一种访问速度被提高的错觉。(当我们使用抓包工具查看http状态时,我们可以看到200,304,from cache之类的标识)
所以浏览器缓存其实就是指在本地使用的计算机中开辟一个内存区,同时也开辟一个硬盘区作为数据传输的缓冲区,然后用这个缓冲区来暂时保存用户以前访问过的信息。既然缓存存在于硬盘之中,那么它肯定是以文件夹的形式出现的。
浏览器缓存的工作原理
缓存按照信息存放的位置可以分成 内存缓存 和 硬盘缓存 。
内存缓存是用于暂时存储本次上网所调用的数据资料的,从Internet上传来的每一个网页信息,在内存缓存中都相应地给予保存一个备份,"返回"和" 向前"实际上是将以前的页面从内存缓存中调出来并显示在用户的浏览器窗口中,在内存缓存中存放的网页信息量和内存缓存的大小有关,内存缓存越大,保存的网页信息量就越多。
硬盘缓存是用于保存用户前几次上网时所调用的信息资料,用户从"历史记录"中调出来的内容其实就是保存在硬盘缓存中的,只要用户开辟的硬盘缓存足够大,将可以保存用户前几个星期甚至几个月前调用过的信息资料。
服务器端缓存
如memcached
代理缓存:
代理是将客户端和服务器连接在一起,作为中间人角色,可以将客户端请求响应的内容进行缓存,在下次客户端缓存时,代理直接返回缓存结果,提高性能
如nginx反向代理缓存
与缓存有关的http head字段有:
Cache-Control/Pragma
Expires
Last-Modified/Etag