cookie机制

来源:互联网 发布:windows字体下载 编辑:程序博客网 时间:2024/06/04 17:49

一、cookie是什么

cookie,有时也用复数形式cookies,指某些网站为了辨别用户身份,进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。cookie是在http协议下,服务器或脚本可以维护客户工作站上信息的一种方式。

它是由web服务器保存在用户浏览器(客户端)上的小文本文件,如果服务器需要记录该用户状态,使用response向客户端颁发一个cookie。客户端浏览器把cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同cookie一同提交给服务器。服务器检查该cookie,以此辨别用户状态,服务器还可以根据需要修改cookie的内容。


cookie分为临时和持续的,临时cookie只在浏览器上保持一段规定的时间,一旦超过该时间,就会被系统清除。持续的cookie保存在用户cookie文件中,下一次用户返回时,仍然可以对它进行调用。

二、cookie对象的属性

(1)string name:该cookie的名称,一旦创建,名称便不可更改。

(2)Object value:该cookie的值,如果值为Unicode字符,需要为字符编码。如果为二进制数据,则需要使用BASE64编码。

(3)int maxAge :该cookie失效时间,单位秒。如果为正数,则cookie在maxAge秒之后失效。如果为负数,该cookie为临时cookie,关闭浏览器即失效,浏览器也不会以任何形式保存cookie。如果为0,表示删除cookie。默认为-1.

(4)boolean secure:该cookie是否仅被使用安全协议传输。安全协议有HTTPS,SSL等,在网络上传输数据之前先将数据加密,默认为false。

(5)string path:该cookie的使用路径,如果设置为“/sessionWeb/”,则只有contextPath为“/sessionWeb/”的程序可以访问该cookie。如果设置为“/”,则本域名下contextPath都可以访问该cookie,注意最后一个字符必须为“/”。

(6)string domain:可以访问该cookie的域名,如果设置为“.google.com”,则所有以“goole.com”结尾的域名都可以访问该cookie。注意第一个字符必须为“.”。

(7)string comment:该cookie的用户说明,浏览器显示cookie信息的时候显示该说明。

int version:该cookie使用的版本号,0表示遵循Netscape的Cookie规范,1表示遵循W3C的RFC 2109规范

 1、生命周期

Cookie cookie =new  Cookie("username","helloworld");  //新建Cookiecookie.setMaxAge(Integer.MAX_VALUE);  //设置生命周期为MAX_VALUEresponse.addCookie(cookie);   //输出到客户端
如果MaxAge为正数,浏览器会将该Cookie持久化,即写到对应的Cookie文件中。无论客户关闭了浏览器还是电脑,只要不超过该值,登录网站时该Cookie仍然有效。
2、域名:不可跨域名。

Cookie的隐私安全机制能够禁止网站非法获取其他网站的Cookie。

 使www.helloweenvsfei.com和images.helloweenvsfei.com都可以使用该Cookie,需设置Cookie的domain参数:

Cookie cookie = new cookie("password","123");cookie.setDomain(".helloweenvsfei.com");  //设置域名cookie.setPath("/");  //设置路径cookie.setMaxAge(Integer.MAX_VALUE);   //设置有效期response.addCookie(cookie);    //输出到客户端

三、总结:

这里主要总结了什么是cookie,cookie的实现原理,以及cookie的常用属性。关于cookie的知识点还有许多,今天就先总结到这里吧,在今后的学习中不断进行补充。




原创粉丝点击