Session和Cookie机制

· Session会话

· 1、 InProc Session Provider是最快的,因为所有数据都存在应用程序的内存里,Session数据在IIS重启,或者站点被回收的情况下丢失,你可以在用户量较小的网站上使用这种模式,但别在Web Farm下使用。

· 2、 State Server模式:Session数据被存储于aspnet_state.exe应用中,他在Web服务之外保存Session数据,所以Web服务出现问题不会对他的Session数据造成影响,在将Session数据存储到StateServer之前需要序列化对象,在Web Farm中我们能安全地使用这个模式。

· 3、 SQL Server模式:他将Session数据保存到SQL Server中,我们需要提供连接串,我们存储时也需要对对象进行序列化,这种模式在实际Web Farm的生产环境中是非常有用的。

· 4、 Custom模式,当我们需要使用一个已经存在的表来存储Session数据时,在自定义模式中,我们也能创建自定义的Session ID,但是不推荐你自己来实现Provider,推荐使用第三方的Provider。

· 参考资料:

· https://www.cnblogs.com/ideacore/p/6423281.html

 

 

· Cookie机制

· Cookie的作用

· 比如你登录录邮箱,登录一个页面。我们经常会在此时设置30天内记住我,或者自动登录选项

· Cookie的分类

· cookie分为会话cookie持久cookie,会话cookie是指在不设定它的生命周期expires时的状态,前面说了,浏览器的开启到关闭就是一次会话,当关闭浏览器时,会话cookie就会跟随浏览器而销毁。当关闭一个页面时,不影响会话cookie的销毁。会话cookie就像我们没有办理积分卡时,单一的买卖过程,离开之后,信息则销毁。

· 持久cookie则是设定了它的生命周期expires,此时,cookie像商品一样,有个保质期,关闭浏览器之后,它不会销毁,直到设定的过期时间。对于持久cookie,可以在同一个浏览器中传递数据,比如,你在打开一个淘宝页面登陆后,你在点开一个商品页面,依然是登录状态,即便你关闭了浏览器,再次开启浏览器,依然会是登录状态。这就是因为cookie自动将数据传送到服务器端,在反馈回来的结果。持久cookie就像是我们办理了一张积分卡,即便离开,信息一直保留,直到时间到期,信息销毁。

 

  • Cookie的限制
  • Cookie的性质上是绑定到当前域名下的。当设定了当前Cookie后,再给创建它的域名发送请求时都会包含这个cookie。
  • 每个域的Cookie是有数量限制的,不同的浏览器之间各不相同:
  • IE6及之前的版本限制每个域最多20个cookie
  • IE7及之后的版本限制50个cookie
  • Firefox限制每个域最多50个cookie
  • Opera限制每个域最多30个cookie
  • Safari和Chrome对cookie的数量没有限制
  • 浏览器对域的大小也有限制,大多数浏览器都有大约4kb的长度限制
  •  
  • Cookie的构成
  • Cookie由浏览器保存由以下信息组成:
  • 名称:cookie的名称,具有唯一性,不区分大小写,cookie名称必须经过URL编码
  • :存储在cookie中的字符串值,必须经过URL编码
  • :cookie只对指定域有效。所有向该域发送的请求都会包含该cookie信息。这个值可以包含子域(如:www.baidu.com),也可以不包含子域(如:baidu.com,这样就对baidu.com所有子域都有效,这是实现单点登陆的关键)
  • 路径:对于指定域中的那个路径,应该向服务器发送cookie。例如:你可以指定向www.baidu.com/pay发送cookie,而www.baidu.com不会发送cookie。
  • 失效时间:表示cookie何时应该被删除的时间戳,这个值是GMT 格式的日期
  • 安全标志:指定后,cookie只有在使用SSL连接时才会发送到服务器。

· 参考资料:  

· https://blog.csdn.net/u014753892/article/details/52821268

 

你可能感兴趣的:(Web应用,Session,Cookie)