当前位置:  开发笔记 > 编程语言 > 正文

会话和Cookie之间有什么区别?

如何解决《会话和Cookie之间有什么区别?》经验,为你挑选了3个好方法。

会话和Cookie之间有什么区别?

应该在什么情况下使用?



1> cgreeno..:

会议

会话按用户存储在服务器上的内存(或备用会话状态)中.会话使用cookie(会话密钥)将用户绑定到会话.这意味着用户计算机上的cookie中不存储"敏感"数据.

会话通常用于在浏览网站时维护状态.但是,它们也可用于保存常用对象.仅当会话状态设置为InProc时,如果设置为另一个会话状态模式,则该对象也必须可序列化.

Session["userName"] = "EvilBoy";

if(Session["userName"] != null)
  lblUserName.Text = Session["userName"].ToString();

饼干

Cookie按用户存储在用户计算机上.Cookie通常只是一些信息.Cookie通常用于简单的用户设置颜色首选项等.不应将敏感信息存储在cookie中.

您永远不能完全相信cookie没有被用户或外部来源篡改,但是如果安全性是一个大问题并且您必须使用cookie,那么您可以加密cookie或将它们设置为仅通过SSL传输.用户可以随时清除自己的Cookie或完全不允许使用Cookie,因此您不能指望他们只是因为用户过去曾访问过您的网站.

//add a username Cookie
Response.Cookies["userName"].Value = "EvilBoy";
Response.Cookies["userName"].Expires = DateTime.Now.AddDays(10);
//Can Limit a cookie to a certain Domain
Response.Cookies["domain"].Domain = "Stackoverflow.com";

//request a username cookie
if(Request.Cookies["userName"] != null)
   lblUserName.Text = Server.HtmlEncode(Request.Cookies["userName"].Value);

边注

值得一提的是,ASP.NET还支持无cookie状态管理



2> Canavar..:

Cookie是变量的客户端存储.它通过浏览器物理存储在客户端机器上.它的范围是机器范围的.同一台机器上的不同用户可以读取相同的cookie.

因为这 :

    您不应该在cookie上存储敏感数据.

    您不应存储属于一个用户帐户的数据.

    Cookie对服务器资源没有影响.

    Cookie会在指定日期到期.

会话是变量的服务器端存储.默认情况下,它存储在服务器的内存中.但是您可以将其配置为存储在SqlServer中.它的范围是浏览器范围.相同的用户可以运行两个或更多浏览器,每个浏览器都有自己的会话.

因为这 :

    您可以在会话中保存敏感数据.

    你不应该在会话中保存所有内容.这是浪费服务器资源.

    用户关闭浏览器后,会话超时会清除所有信息.(默认为20分钟)



3> Karl Thorwal..:

Cookie是由访问服务器/域的用户的浏览器中的服务器(具有域)存储的标识字符串.

会话是可能变量,状态,设置的单位,而某个用户在特定时间范围内访问服务器/域.所有会话信息都在存储在服务器上的传统模型中(!)

由于许多并发用户可以同时访问服务器/域,因此服务器需要能够区分许多不同的并发会话,并始终将正确的会话分配给正确的用户.(并且没有用户可以"窃取"其他用途的会话)

这是通过cookie完成的.存储在浏览器中的cookie,在这种情况下应该是一个随机组合,如s73jsd74df4fdf(因此无法猜到)是从浏览器发送到服务器的每个请求上发送的,服务器可以分配和使用正确的会话它的答案(页面浏览量)

cookie允许服务器识别浏览器/用户.会话允许服务器记住不同页面视图之间的信息.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有