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                 }
               }
    复制代码
  • 相关阅读:
    容器跨主机网络通信学习笔记(以Flannel为例)
    Kubernetes控制器Job和CronJob
    记一次使用Flannel插件排错历程
    Kubernetes控制器Deployment
    Kubernetes如何通过StatefulSet支持有状态应用?
    react18 来了,我 get 到...
    gojs 实用高级用法
    vuecli3 vue2 保留 webpack 支持 vite 成功实践
    calibre 报错 This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. 解决
    unable to recognize "*.yaml": no matches for kind "RoleBinding" in version "rbac.authorization.k8s.io/v1beta1"
  • 原文地址:https://www.cnblogs.com/zhangzhixiong/p/5110695.html
Copyright © 2011-2022 走看看