zoukankan      html  css  js  c++  java
  • [asp.net]cookie和session

    cookie是浏览器保存网页信息的一小块地方,用cookie,就能轻松实现浏览器的记住用户ID的功能,cookie是与域名相关的,只有同一域名下的网页才能读取该域名的cookie。

    能记住网页或者用户的某些信息固然方便,不过对于某些既要求保存,而且安全要求高的信息,却不能保存在cookie中,以防止用户篡改数据,这时候就用到了session。

    从功能上来说,cookie跟session是一致的,都是用于保存网页信息(少量信息),不过从媒介上来说是不同的,cookie是保存在用户主机上,session是保存在服务器上。

    session,准确来说是存放到服务器的内存上。由于是存放到内存上的数据,当网站的访问量大的时候,服务器就可能发生内存不足的问题,因此session存放的信息量必须小,而且当某session处于不再活动状态的时候就要释放内存,这样的话就要求session中有超时的概念:如果超过某个时间段,服务器没收到该用户的请求,则判断该session为死亡状态,进而释放内存。

    cookie的主要字段有两个,key和value,当要从cookie中取某个值的时候,通过指定key得到其value,如果不存在该key,那么当然会返回空。

    session主要字段有三个,ID,key和value,因为session是存放到服务器上的,服务器又有许多用户访问,所以要为不同用户分配不同ID,分配方法各种各样,有GUID,或者网站的用户ID等。

    以下为session的原理性代码

     1 public class SessionMgr
     2 {
     3     private static IDictionary<string ,IDictionary<string ,object>> data=new Dictionary<string,IDictionary<string,object>>();
     4     //data为保存session的全局变量,共三个字段:第一个string为ID,第二个string为key,第三个object为value  
     5     //等号右边的式子分配内存,为Dictionary对象,这样的话就能通过ID找到(key,value),然后再通过key查找value
     6     //左边的式子得到IDictionary接口,借口中实现各种操作Dictionary的方法,接口的具体实现可以去了解一下com
     7 
     8 
     9     public IDictionary<string, object> GetSession(string sessionID)
    10         //GetSession实现的是通过ID查找(key,value),再把该对象返回用于其它操作的方法
    11     {
    12         if (data.ContainsKey(sessionID))
    13             //如果存在该ID则返回其(key,value)
    14         {
    15             return data["sessionID"];
    16         }
    17         else
    18             //如果不存在该ID则用该ID新建一个(key,value),并返回
    19         {
    20             IDictionary<string,object> session=new Dictionary<string,object>();
    21             data["sessionID"] = session;
    22             return session;
    23         }
    24     }
    25 }
  • 相关阅读:
    一个最简单的例子学习SAP Cloud for Customer HTML mashup
    SAP C4C Embedded Component最常见的故障原因分析
    使用SAP CRM Mock framework进行单元测试
    ABAP Debugging Script(调试器脚本)使用的一些实际例子
    SAP ABAP字符和字符串变量隐式转换的一些规则
    两种使用代码获得SAP CRM product sales status的办法
    扎根CNCF社区贡献五年是怎样的体验?听听华为云原生开源团队的负责人怎么说
    LiteOS调测利器:backtrace函数原理知多少
    微服务容错时,这些技术你要立刻想到
    Volcano 监控设计解读,一看就懂
  • 原文地址:https://www.cnblogs.com/TaigaCon/p/2641003.html
Copyright © 2011-2022 走看看