今天抽时间上网搜了一下关于cookie的知识,整理记录一下。

1.cookie是存储在客户端机器硬盘中的(相比较,session是存储在服务器端的内存中,可想而知更安全,但也会占用服务器资源),对其的管理是在浏览器中,这个我们可以用浏览器工具(F12)查看cookie信息。

2.cookie的使用场景:大多是用于记录用户一些基础信息,如用户名、密码,这样当用户下次登录这个网站时会发现用户名密码是已经填写好的(前提是第一次登录成功后弹出提示:是否记住用户信息、是否自动登录等,选择是),目的就是方便了用户对网站的浏览,节省用户时间。又比如,我们浏览购物网站的加入购物车功能,便是把商品信息记入了cookie,目的是一样的,都是方便用户对网站的访问,包括一些网站个性化信息等,都可以记录cookie。

3.使用限制:浏览器一般都是默认允许记录cookie的(当然,也可以设置网站屏蔽所有cookie),cookie记录信息量是有限的,一般为4k,而且大多数浏览器允许每个站点存储20个cookie,存储更多的话会导致较旧的cookie被覆盖。

4.由于cookie是存储在客户端的,所以敏感信息切记不要存cookie身份证号、信用卡等重要信息)。

5.可以通过Expires属性设置cookie失效时间,如果不设置失效时间,Cookie信息不会写到用户硬盘,浏览器关闭将会丢弃。
6.对cookie的操作:

复制代码
①添加cookie:
1        HttpCookie cookie = new HttpCookie("MyCookie");//实例化一个名为"MyCookie"的cookie 2 cookie.Expires = DateTime.Now.AddMinutes(1);//设置cookie过期时间1分钟 3 4 //为MyCookie添加两个子键:userId,userId2,对应的值分别为:uservalue1,uservalue2 5 cookie.Values.Add("userId", "uservalue1"); 6 cookie.Values.Add("userId2", "uservalue2"); 7 //将一个http cookie添加到内部cookie集合 8 Response.AppendCookie(cookie); 9 //输出所有cookie值信息 10 Response.Write(cookie.Values);

复制代码
复制代码
1 ②读取cookie:
2 1       if (Request.Cookies["MyCookie"] != null)
3 2             {
4 3                 Response.Write("MyCookie中键为userId的值为:" + Request.Cookies["MyCookie"]["userId"]);
5 4                 Response.Write("MyCookie中键为userId2的值为:" + Request.Cookies["MyCookie"]["userId2"]);
6 5                 Response.Write("MyCookie中所有内容:" + Request.Cookies["MyCookie"].Value);
7 6             }
复制代码
复制代码
 1 ③修改cookie:
 2  1       HttpCookie myCookie = Request.Cookies["MyCookie"];
 3  2             if (myCookie != null)
 4  3             {
 5  4                 //修改cookie
 6  5                 myCookie.Values["userId"] = "new_uservalue1";
 7  6 
 8  7                 //向cookie中添加新值
 9  8                 myCookie.Values.Set("newId", "add_uservalue");
10  9                 Response.AppendCookie(myCookie);
11 10             }
12 11             Response.Write("修改后MyCookie中所有内容:" + Request.Cookies["MyCookie"].Value);

 

复制代码
复制代码
 1 ④删除cookie:
 2 
 3  1        HttpCookie mycookie = Request.Cookies["MyCookie"];
 4  2             if (mycookie != null)
 5  3             {
 6  4                 mycookie.Values.Remove("userId");//移除键为userId的值
 7  5                 Response.Write("修改后MyCookie中所有内容:" + Request.Cookies["MyCookie"].Value);
 8  6 
 9  7                 //移除所有cookie:设置cookie失效
10  8                 mycookie.Expires = DateTime.Now.AddDays(-1);
11  9                 //session过期后,需写入输出流,下次访问时此session才会真正失效(自己的理解)
12 10                 Response.AppendCookie(mycookie);
13 11                 if (mycookie != null)
14 12                 {
15 13                     Response.Write("cookie仍有效" + Request.Cookies["MyCookie"].Value);
16 14                 }
17 15                 else
18 16                 {
19 17                     Response.Write("cookie已被移除");
20 18                 }
           }
复制代码
posted on 2016-01-07 17:44  PandaZhang94  阅读(310)  评论(0编辑  收藏  举报