上述abcde进详细的描述了cookie在浏览器和服务器之间传递和保存的过程图。a.首先浏览器先向服务器发送请求,服务端接受请求,并需要浏览器去缓存一些信息。于是创建cookie对象b.将cookie对象添加到response响应对象中,然后通过http协议发送给浏览器。c.浏览器接受响应信息,同时浏览器将cookie信息,保存到cookie文件中,同样以名称=值的方式保存d.当浏览器再次发送请求到服务器的时候,会将cookie信息一同通过http协议发送到服务端。e.服务端就可以获取之前存储的cookie信息了。
a.服务器能发送少量的数据到浏览器b. 每一个web服务器只能向用户发送20个cookiec.一个浏览器可以缓存300个cookied.每一个cookie文件最大值为4k
e.cookie名称和内容不支持中文,如果需要使用中文需要编码,获得数据进行解密
* 方案1: (get请求的中文乱码的处理方式一致的)
* 编码:str.getBytes() 使用,将字节数组拼凑成字符串(1,2,3,4)* 再解码: 字符串1,2,3,4变成字节数组,new String
* 方法2:
* 编码:URLEncoderURLEncoder.encode(cn, "UTF-8");
4.cookie生命周期* 解码:URLDecoderURLDecoder.decode("%E9%BE%99%E5%84%BF", "UTF-8");
浏览器处理cookie依据修改有效时间:setMaxAge,单位为秒>0 ,指定x秒后失效,将以文件形式保存浏览器端(在硬盘中)=0 ,浏览器将删除cookie<0 ,会话级cookie,在内存中
getCookies() 获得所有符号要求的cookiesetPath("路径")/ web站点根/day10/ web项目根例如:http://localhost:8080/day10/a/b/c/Demo01CookieServlet默认路径:/day10/a/b/c/
JavaWeb之cookie缓存技术,布布扣,bubuko.com
原文:http://blog.csdn.net/hymking/article/details/26263843