zoukankan      html  css  js  c++  java
  • cookie

    今天抽时间上网搜了一下关于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                 }
               }
    复制代码
  • 相关阅读:
    第八章 多线程编程
    Linked List Cycle II
    Swap Nodes in Pairs
    Container With Most Water
    Best Time to Buy and Sell Stock III
    Best Time to Buy and Sell Stock II
    Linked List Cycle
    4Sum
    3Sum
    Integer to Roman
  • 原文地址:https://www.cnblogs.com/zhangzhixiong/p/5110695.html
Copyright © 2011-2022 走看看