session cookie application的区别

方法 信息量大小 保存时间 应用范围 保存位置
Application 任意大小 整个应用程序的生命期 所有用户 服务器端
Session 小量,简单的数据
用户活动时间+一段延迟时间(一般

为20分钟)

单个用户 服务器端
Cookie 小量,简单的数据 可以根据需要设定 单个用户 客户端

1.Application对象

Application用于保存所有用户的公共的数据信息,如果使用Application对象,一个需要考虑的问题是任何写操作都要在Application_OnStart事件(global.asax)中完成.尽管使用Application.Lock和Applicaiton.Unlock方法来避免写操作的同步,但是它串行化了对Application对象的请求,当网站访问量大的时候会产生严重的性能瓶颈.因此最好不要用此对象保存大的数据集合

2.Session对象

Session用于保存每个用户的专用信息.她的生存期是用户持续请求时间再加上一段时间(一般是20分钟左右).Session中的信息保存在Web服务器内容中,保存的数据量可大可小.当Session超时或被关闭时将自动释放保存的数据信息.由于用户停止使用应用程序后它仍然在内存中保持一段时间,因此使用Session对象使保存用户数据的方法效率很低.对于小量的数据,使用Session对象保存还是一个不错的选择.使用Session对象保存信息的代码如下:

//存放信息

Session["username"]="zhouhuan";

//读取数据

string UserName=Session["username"].ToString();

3.Cookie对象

Cookie用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需要设置.如果没有设置Cookie失效日期,它们仅保存到关闭浏览器程序为止.如果将Cookie对象的Expires属性设置为Minvalue,则表示Cookie永远不会过期.Cookie存储的数据量很受限制,大多数浏览器支持最大容量为4096,因此不要用来保存数据集及其他大量数据.由于并非所有的浏览器都支持Cookie,并且数据信息是以明文文本的形式保存在客户端的计算机中,因此最好不要保存敏感的,未加密的数据,否则会影响网站的安全性.使用Cookie对象保存的代码如下:

//存放信息

Response.Cookies["UserID"].Value="0001";

//读取信息

string UserID=Response.Cookies["UserID"].Value;

总结:

1、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。 cookie有容量限制,而session没有太大限制。

2、session中保存的是对象,cookie中保存的是字符串。

3、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。

4、session需要借助cookie才能正常工作。如果客户端完全禁止cookie,session将失效。

5 session在用户会话结束后就会关闭了,但cookie因为保存在客户端,可以长期保存, Session采用键值对 , 也就是说ID存放客户端 , 而值放在服务器端 , 是通过用户的ID去找服务器上对应的值 , 这种方式值放置在服务器端 ,有个时间限制 ,时间到则服务器自动释放.

Application:与一个Web应用程序相对应,该应用程序下所有的Servlet/JSP共享该Application中的信息(ServletContext)

时间: 2024-10-12 18:27:44

session cookie application的区别的相关文章

jsp 的四个作用域 :page、request、session和application的区别 .

原文入口:点这里~ 1.区别: 1.page指当前页面有效.在一个jsp页面里有效 2.request 指在一次请求的全过程中有效,即从http请求到服务器处理结束,返回响应的整个过程,存放在HttpServletRequest对象中.在这个过程中可以使用forward方式跳转多个jsp.在这些页面里你都可以使用这个变量. 3.Session是用户全局变量,在整个会话期间都有效.只要页面不关闭就一直有效(或者直到用户一直未活动导致会话过期,默认session过期时间为30分钟,或调用HttpSe

【Web后端笔记】jsp 的四个作用域 :page、request、session和application的区别

1.区别: 1.page指当前页面有效.在一个jsp页面里有效 2.request 指在一次请求的全过程中有效,即从http请求到服务器处理结束,返回响应的整个过程,存放在HttpServletRequest对象中.在这个过程中可以使用forward方式跳转多个jsp.在这些页面里你都可以使用这个变量. 3.Session是用户全局变量,在整个会话期间都有效.只要页面不关闭就一直有效(或者直到用户一直未活动导致会话过期,默认session过期时间为30分钟,或调用HttpSession的inva

jsp有关resquest与session和application的区别和相似性

1. request 的setAttribute与getAttribute方法一般都是成对出现的,首先通过setAttribute方法设置属性与属性值,然后通过 getAttribute方法根据属性获取到与该属性对应的对象值(获取到之后一般都需要进行向下类型转换,将属性值转换为真正的对象).setAttribute与getAttribute方法都是在服务器端内部执行的,客户端不知道服务器是否执行过这两个方法. 2. request 的getParameter方法的作用是获取到客户端,通过表单或u

【转】Session Cookie Token的区别

Cookie cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能. cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器.由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的. Session session 从字面上讲,就是会话.这个就类似

session/cookie/token的区别

1.Cookie (1)特点 存储在浏览器上,一个浏览器可以存储的Cookie为200个,一个web的网站能设置的Cookie不能超过20个,Cookie的大小不能超过4K (2)执行的流程 1.客户端发送HTTP请求到客户端 2.服务端收到请求之后,会发送一个响应头到客户端,这个响应头就包含Set-Cookie的头部 3.客户端发送第三次的请求(如果说服务需要我们发送一个Cookie的话,那么在第二次的过程中时,就会将上一次拿到的Cookie发送个服务端),提供了服务端可以识别客户端的信息.

Application,Session,Cookie,ViewState和Cache区别

在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等.下面分别介绍它们的用法和区别. 方法 信息量大小 作用域和保存时间 应用范围 保存位置 Application 任意大小 整个应用程序的生命期 整个应用程序/所有用户 服务器端 Cache 任意大小 可以根据需要设定 整个应用程序/所有用户 服务器端 Session 小量,简单的数据 用户活动时间+一段延迟时间(一般为20分钟) 单个用户 服务器端 Cook

ASP.NET Application,Session,Cookie和ViewState等对象用法和区别 (转)

在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等.下面分别介绍它们的用法和区别. 方法 信息量大小 作用域和保存时间 应用范围 保存位置 Application 任意大小 整个应用程序的生命期 整个应用程序/所有用户 服务器端 Cache 任意大小 可以根据需要设定 整个应用程序/所有用户 服务器端 Session 小量,简单的数据 用户活动时间+一段延迟时间(一般为20分钟) 单个用户 服务器端 Cook

Asp.net 服务器Application,Session,Cookie,ViewState和Cache区别

系统对象与状态管理  原文   http://www.cnblogs.com/liaoqiang/archive/2010/01/30/1660021.html Page对象Page对象是指向页面自身的方式,在整个页面的执行期内,都可以使用该对象示例: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="defautl.aspx.cs" Inherits="_defaul

浅谈JS中的!=、== 、!==、===的用法和区别 JS中Null与Undefined的区别 读取XML文件 获取路径的方式 C#中Cookie,Session,Application的用法与区别? c#反射 抽象工厂

var num = 1;    var str = '1';    var test = 1;    test == num  //true 相同类型 相同值    test === num //true 相同类型 相同值    test !== num //false test与num类型相同,其值也相同, 非运算肯定是false    num == str  //true 把str转换为数字,检查其是否相等.    num != str  //false == 的 非运算    num ==