http缓存

1 缓存的分类

缓存分为服务端侧(sever side, 比如Nginx、Apache)和客户端侧(client side ,比如web browser)

服务端缓存又分为 代理服务器缓存 和 反向代理服务器缓存(也叫网关缓存,比如 Nginx反向代理、Squid等),目的都是让用户请求走“捷径”,并且都是缓存图片、文件等静态资源

客户端缓存,一般指的是浏览器缓存,目的就是加速各种静态资源的访问,现在大型网站,随便一个页面都是一两百个请求,每天的页面访问量(page view)PV都是亿级别。如果没有缓存,用户体验会急剧下降,同时服务器压力和网络带宽都面临严重的考验。

2 浏览器的缓存机制

缓存控制机制有两种:html meta标签 VS. HTTP头部信息

2.1 HTML Meta标签控制缓存

浏览器缓存机制,其实主要就是HTTP协议定义的缓存机制(如: Expires; Cache-control等)。但是也有非HTTP协议定义的缓存机制,如使用HTML Meta 标签,Web开发者可以在HTML页面的节点中加入标签,代码如下:

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

上述代码的作用是告诉浏览器当前页面不被缓存,每次访问都需要去服务器拉取。使用上很简单,但只有部分浏览器可以支持,而且所有缓存代理服务器都不支持,因为代理不解析HTML内容本身。而广泛应用的还是 HTTP头信息 来控制缓存,下面我主要介绍HTTP协议定义的缓存机制。

2.2 http 头部信息控制缓存机制

2.2.1 浏览器请求流程


你可能感兴趣的:(JavaScript)