后台程序员的HTTP缓存
2016-05-27 16:43
225 查看
1.后端程序员只需要关注请求头:
响应头:
响应头:
ETags和If-None-Match的工作原理是在HTTP Response中添加ETags信息。当客户端再次请求该资源时,将在HTTP Request中加入If-None-Match信息(ETags的值)。如果服务器验证资源的ETags没有改变(该资源没有改变),将返回一个304状态;否则,服务器将返回200状态,并返回该资源和新的ETags。
2.ETag如何帮助提升性能?
聪明的服务器开发者会把ETags和GET请求的“If-None-Match”头一起使用,这样可利用客户端(例如浏览器)的缓存。因为服务器首先产生ETag,服务器可在稍后使用它来判断页面是否已经被修改。本质上,客户端通过将该记号传回服务器要求服务器验证其(客户端)缓存。
其过程如下:
1.客户端请求一个页面(A)。
2.服务器返回页面A,并在给A加上一个ETag。
3.客户端展现该页面,并将页面连同ETag一起缓存。
4.客户再次请求页面A,并将上次请求时服务器返回的ETag一起传递给服务器。
5.服务器检查该ETag,并判断出该页面自上次客户端请求之后还未被修改,直接返回响应304(未修改——Not Modified)和一个空的响应体。
if-None-Match //上一次response头中的ETag的值。
响应头:
Etag //是URL的Entity Tag,用于标示URL对象是否改变,区分不同语言和Session等等。第一次请求时,会带上etag.
响应头:
Cache-control: public //所有内容都将被缓存(客户端和代理服务器都可缓存) private //只能客户端能缓存 no-cache //在使用缓存的资源之前,必须先和服务器确认返回的响应是否被修改, 如果资源没有被修改,可以避免下载,验证是否被修改,是通过if-None-match和ETag来实现的。 no-store //浏览器和任何中继的web代理都不会储存这次相应的资源。 max-age //在这段时间内,浏览器不会向服务器发送任何情况, must-revalidation/proxy-revalidation
ETags和If-None-Match的工作原理是在HTTP Response中添加ETags信息。当客户端再次请求该资源时,将在HTTP Request中加入If-None-Match信息(ETags的值)。如果服务器验证资源的ETags没有改变(该资源没有改变),将返回一个304状态;否则,服务器将返回200状态,并返回该资源和新的ETags。
2.ETag如何帮助提升性能?
聪明的服务器开发者会把ETags和GET请求的“If-None-Match”头一起使用,这样可利用客户端(例如浏览器)的缓存。因为服务器首先产生ETag,服务器可在稍后使用它来判断页面是否已经被修改。本质上,客户端通过将该记号传回服务器要求服务器验证其(客户端)缓存。
其过程如下:
1.客户端请求一个页面(A)。
2.服务器返回页面A,并在给A加上一个ETag。
3.客户端展现该页面,并将页面连同ETag一起缓存。
4.客户再次请求页面A,并将上次请求时服务器返回的ETag一起传递给服务器。
5.服务器检查该ETag,并判断出该页面自上次客户端请求之后还未被修改,直接返回响应304(未修改——Not Modified)和一个空的响应体。
相关文章推荐
- Ext.data.HttpProxy传参的中文乱码解决办法
- HTTPS
- TCP总结
- 七层网络协议
- apache httpd启动关闭,以及设置开机启动
- REDHAT AS4 不能登陆的解决办法
- 移动无线网络切换组合
- [golang note] 网络编程 - RPC编程
- linux内核工程导论-网络:tcp拥塞控制
- 百度定位+广播检测网络(小白版)
- 解决AndroidStudio从网络引入三方jar包,项目中无法找到类问题
- 移动无线网络参数及速率
- TCP/IP 学习笔记
- 【iOS】网络操作与AFNetworking
- 卷积神经网络(CNN)在句子建模上的应用
- 通过http 协议 可以访问 Hadoop 50070 端口,hadoop 里面配置的servlet 是什么容器呢 ?
- HttpClient使用详解
- hyper-v Centos安装后网络配置及Nginx安装详细过程
- 最大网络流 EK 算法
- 最大网络流 EK 算法