浏览器缓存cookie与服务器缓存

之前对缓存都是一知半解的,都是基于理论之上没有正整实际动手验证过,今天抽时间终于把缓存重新理了一片

1、 设置js 、css缓

      http头部中设置expires,Cache-Control(具体怎么设置这里就不细说),IIS服务器上设置过期时间

2、浏览器中如何设置缓存document.cookie,  通过key/value的形式,对缓存的操作可参照 

http://www.cnblogs.com/shaohz2014/p/3533886.html

var date =new Date().getTime()+10*24*3600*1000;
    document.cookie="userId=828 ";
    document.cookie="userName="+encodeURIComponent(" 重庆 ")+';'+"expires="+new Date(date).toGMTString();


 
注意: A、  
编码问题,在cookie的名或值中不能使用分号(;)、逗号(,)、等号(=)以及空格,所有需要编码,之前的escape()编码已经过时,推荐encodeURI() 

       B、每个expires只是针对当前的cookie 生效,如上面的只针对key为userName的cookie有效

每次发送请求的时候都会在request头部加入cookie,如图:

在js中是无法获取cookie中expires失效时间,只有通过建立虚拟字段存储在cookie中,

3、浏览器encodeURI编码之后的cookie在服务器中获取,java.net.URLDecoder.decode()解码

  request.getCookies(),返回的是一个cookie数组,

                Cookie [] cookie = request.getCookies();
		for(int i=0;i<cookie.length;i++){
			String key = cookie[i].getName();
			String value = cookie[i].getValue();
			System.out.println(key+" "+java.net.URLDecoder.decode(value,"utf-8"));
		}

4、服务器设置cookie


服务器中设置的cookie,也会存在于浏览器中,在下次请求的时候也会带在这个cookie,当然必须在同一域名之下。




图中第一result存在于 request 中,但它是由于服务器中设置cookie后存在于每次请求的头部中,而第二个result存在于response中,它也是来至于服务器中。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值