session,application,cookie,viewstate,Querystring等的作用域

Session:存放于服务器,生命周期根据不同的设置而定。默认是20分钟,可以设置成无限期。主要根据客户端传递过来的SessionID来区分不同的对话。至于SessionID如何传递。目前绝大部分是只用Cookie,少部分使用url,极少部分使用表单元素。总之从客户端传递到服务器即可。

application:服务器应用程序,这个的生命周期是根据应用程序进程来决定的。IIS5以前基本上是当前进程,IIS5之后是根据进程池而定。只要这些停了那么就消失了,否则就一直存在。

cookie:这个是存放的载体在客户端的浏览器中,生命周期默认是根据服务器返回的Set-Cookie头设置的。有2大类。1、httponly:浏览器一关就没了。2、有过期时间:过期时间到了就没了。当然跟本地浏览器的设置也有关系。还有就是每个cookie都会有指定的domain,如果当前网站与指定的domain不同那么cookie也是取不到的。还有cookie的domain大小写区分,www.aa.com与www.Aa.com是不同的。另外cookie的传递是在Http头中传递的,一旦设置了cookie。每次请求服务器(不管是网页还是图片还是脚本)都100%会带上cookie。所以cookie过大的话,会影响网络传输效率。还有cookie只支持ASCII编码所以要UrlEncode

viewstate:这个东西不好说,载体是网络。服务器将服务器的 可以序列化的对象 序列化并加密后 转换成base64格式放到 一个页面的hidden表单元素中。当带着这个viewstate的表单提交回服务器时才能接收到。所以嘛,这个对象的生命周期仅仅是这个页面。而且页面必须用表单提交回来,否则数据就丢了。想解密viewstate?首先你要拿到一个重要的解密key。这个就是machineKey。

Querystring:http协议的基础,理论上没有生命周期可言。是由客户端向服务器发送的URL请求而已。因为也在http头中所以只支持ASCII编码

原文地址:http://topic.csdn.net/u/20111020/23/bcc747bf-4bce-4d04-afd0-e26cf4446f2d.html

个人觉得这个答案是比较好的,故摘出来,零金碎玉,积少成多!

如果认为此文对您有帮助,别忘了支持一下哦!

作者:齐飞

来源:http://youring2.cnblogs.com/

声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。

转载:http://www.cnblogs.com/youring2/archive/2012/03/25/2416954.html

时间: 2024-09-20 00:14:19

session,application,cookie,viewstate,Querystring等的作用域的相关文章

Struts2中的数据处理的三种方式对比(Action中三种作用域request,session,application对象)

1:在Action中如何获得作用域(request,session,application)对象: 取得Map(键值对映射集)类型的requet,session,application; 对数据操作的所有方法:(即把数据保存到域中) 主要使用的是方式2和方式3: 方式1:直接获取ServletApi,核心类是ServletActionContext提供的静态的方法; 1 package com.bie.lesson04; 2 3 import javax.servlet.ServletConte

对Session和Cookie的区分与理解

cookie|session 对Session和Cookie的区分与理解 先说session 对SESSION的争论好象一直没有停止过,不过幺麽能理解SESSION的人应该占90以上.但还是讲讲,别嫌老~ 有一些人赞成用SESSION,有一些人不赞成.但这个问题到底要怎么说.不妨听听我的看法,如果有错误请不要朝丢东西,金条和硬币除外. 有些人应该知道我是做江湖程序的,而江湖程序做看中的就是效率,但这里不谈设计,而从一些比较实际的角度看SESSION. 首先要先说SESSION是干什么的,SESS

JSP中的page,request,session,application

application|js|request|session application和session比较简单,这里主要说明request和page的作用范围.application:全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止.session:会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态.生命周期:会话超时,或者服务器端强制使会话失效.request:请求作用域,就是客户端的一次请求.page:一个J

IsLine FrameWork系列之十二--使用Session、Cookie与安全支持

今天来介绍IsLine.HttpContent.HttpContentProvider命名空间中关于Session与Cookie的支持. 这是IsLine FrameWork中一个常用的组件,使用这个组件可以为整站程序提供统一的Cookie配置属性,例如Cookie加密方式.是否HttpOnly.是否打开https安全选项.以及默认作用域.CookieProvider是该命名空间下的类,在该类初始化时,会自动加载web.config文件中的 Cookie节点配置,读取成功后会加载于整个web站点

对Session和Cookie的区分与解释_php技巧

对Session和Cookie的区分与理解  先说session 对SESSION的争论好象一直没有停止过,不过幺麽能理解SESSION的人应该占90以上.但还是讲讲,别嫌老~ 有一些人赞成用SESSION,有一些人不赞成.但这个问题到底要怎么说.不妨听听我的看法,如果有错误请不要朝丢东西,金条和硬币除外. 有些人应该知道我是做江湖程序的,而江湖程序做看中的就是效率,但这里不谈设计,而从一些比较实际的角度看SESSION. 首先要先说SESSION是干什么的,SESSION是可以存储针对与某一个

Servlet之ServletContext、Session、Cookie

ServletContext.Session.Cookie都可以用于存储数据,不过三者存储数据的位置及作用域不同. 由上图我们可以看出 ServletContext存储于服务端,每个客户端都可以访问到,数据共享. Session存储于服务端,每个客户端有自己独立的数据区域. Cookie存储于客户端. 下面通过代码来看一下三者的用法 package com.gujin.servlet; import java.io.IOException; import java.io.PrintWriter;

快速理解 session/token/cookie 认证方式

目录 目录 cookie session token cookie Web Application 一般以 HTTP 协议作为传输协议, 但 HTTP 协议是无状态的. 也就是说 server-side 与 client-side 一旦数据交换完毕后,两者之间的连接就会被关闭. client-side 再次发送请求时, 需要建立新的连接, 这就意味着 server-side 和 client-side 两者之间无法通过 HTTP 的连接来实现 会话跟踪. 显然, 这是不合理的, 因为这样无法保证

asp.net Application cookie Sessions Server内建对象(1/4)

asp教程.net application cookie sessions server内建对象 asp.net教程内建了许多对象,包括application.response.request.cookie.sessions.cache.server和viewstate等对象.通过这些对象,可以提供网站一些必不可少的功能,例如得到文件的绝对路径.在线人数.访问网站总人数.网上商店购物框等. cookie对象采用键/值对的方法记录数据,语句mycookie.expires=datetime.now

Session和Cookie的问题

我现在要做个页面作为查询资料用. 页面上有一些查询条件 下面用DataGrid显示数据 当完成查询可以点DataGrid进入详细信息 当我回来的时候我要记住原来输入的查询条件和查询结果 怎么可以实现呢? 我现在有两个选择,可以把它放到Session或Cookie Session["Filter1"]=this.TextBox1.Text; --------------------------------------- HttpCookie cookie = new HttpCookie