通过网络获取内容既缓慢,成本又高:大的响应需要在客户端和服务器之间进行多次往返通信,这拖延了浏览器可以使用和处理内容的时间,同时也增加了访问者的数据成本。因此,缓存和重用以前获取的资源的能力成为优化性能很关键的一个方面。 Contents 使用 ETag 验证缓存的响应 Cache-Control
分类:
Web程序 时间:
2016-02-20 22:54:51
阅读次数:
289
在ASP.NET Web API中实现缓存大致有2种思路。一种是通过ETag, 一种是通过类似ASP.NET MVC中的OutputCache。通过ETag实现缓存首先安装cachecow.serverinstall-package cachecow.server在WebApiConfig中。pub...
一、设计理念1.空间换时间1)多级缓存,静态化客户端页面缓存(http header中包含Expires/Cache of Control,last modified(304,server不返回body,客户端可以继续用cache,减少流量),ETag)反向代理缓存应用端的缓存(memcache)内...
分类:
其他好文 时间:
2015-12-26 11:43:53
阅读次数:
204
Last-Modified和Expires针对浏览器,而ETag则与客户端无关,所以可适合REST架构中。两者都应用在浏览器端的区别是:Expires日期到达前,浏览器不会再发出新的请求,除非用户按浏览器的刷新,所以,Last-Modified和Expires基本是降低浏览器向服务器发出请求的次数,...
分类:
其他好文 时间:
2015-12-23 19:21:57
阅读次数:
141
1:nginx版本隐藏之前访问root@zxl-nginxconf]#curl-Ihttp://www.zxl.com
HTTP/1.1200OK
Server:nginx/1.8.0
Date:Sat,19Dec201514:07:29GMT
Content-Type:text/html
Content-Length:44
Last-Modified:Fri,18Dec201505:23:18GMT
Connection:keep-alive
ETag:"56739846-2c"
Acce..
分类:
其他好文 时间:
2015-12-20 09:20:53
阅读次数:
233
全称为:Entity Tag,意思是实体标签,从名字上看,是对于某种实体的一个标识。它的作用是用一个特殊的字符串来标识某个资源的“版本”,客户端(浏览器)来请求的时候,可以比较,如果ETag一致,则表示该资源并没有修改过,客户端(浏览器)可以使用自己缓存的版本。## ETag工作原理 ##当用户第一...
分类:
其他好文 时间:
2015-11-29 14:53:35
阅读次数:
116
缓存配置的一些注意事项① 只有get请求会被缓存,post请求不会② Etag在资源分布在多台机器上时,对于同一个资源,不同服务器生成的Etag可能不相同,此时就会导致304协议缓存失效,客户端还是直接从server取资源。可以自己修改服务器端etag的生成方式,根据资源内容生成同样的etag。③ ...
分类:
其他好文 时间:
2015-10-27 22:02:45
阅读次数:
230
http缓存:网站中的图片,第一次请求:200 ok第二次请求返回:304 未修改 表示使用缓存中的图片一个图片发送到客户端,会把图片传给客户端,而且还在响应信息中有一个Etag和Last-Madified头信息,相当于图片的指纹,Etag表示的是图片的身份证,Last-Modified表示最后修....
分类:
Web程序 时间:
2015-10-01 21:42:23
阅读次数:
174
用Django REST Framework做的REST API,其中有个API有这样的需求:APP端请求这个API,服务器端从数据库读数据,返回json。返回的数据量稍微有些大,但是可能一年才修改一次,所以希望能够仅在数据修改的时候才传输数据,让APP端更新。1. Last-Modified和ET...
分类:
其他好文 时间:
2015-09-27 15:01:14
阅读次数:
989
简单来说ETag即类似于资源实体的指纹,并且他们能够被快速地被比较,以确定两个版本的资源是否相同。
分类:
Web程序 时间:
2015-09-10 11:00:25
阅读次数:
159