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                 }
               }
    复制代码
  • 相关阅读:
    如何使用ERStudio 生成comment
    windows 使用excel导出的问题
    iOS Runtime(一)、objc_class深深的误解
    iOS开发安全
    iOS微信运动 刷分
    APP中的 H5和原生页面如何分辨、何时使用
    Weex系列二、显示图片
    Android系列一、创建项目
    Weex系列一、构建Weex工程
    时间复杂度
  • 原文地址:https://www.cnblogs.com/zhangzhixiong/p/5110695.html
Copyright © 2011-2022 走看看