求助:session,application,cookie,viewstate,Querystring等作用域

goodbyejuly 2011-10-20 11:23:53
session
作用域:HTTP会话内,在当前会话中有效,HTTP会话开始到结束这段时间
可存放的类型:任意类型
存放位置:服务端
----------------
application
作用域:服务器生命周期内,在所有应用程序中有效,服务器启动到停止这段时间
可存放的类型:任意类型,Application对象可以存放其它对象
存放位置:服务端
----------------
cookie
作用域:
可存放的类型:string
存放位置:客户端
----------------
viewstate
作用域:当前类,一个Web页面的生命期
可存放的类型:任意类型
存放位置:客户端
----------------
Querystring
作用域:
可存放的类型:
存放位置:


=-= 那些写出来的对不对?

还有那些红字的实在想不出来了。。求各位大大解答。。

谢谢~
...全文
279 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
keepfool 2011-10-21
  • 打赏
  • 举报
回复
Cookie作用域只要客户端启用了js都能使用。
QueryString作用域应该是一个页面到另一个页面
可存放的类型:字符(字母、特殊符号、数字)
存放位置浏览器Url
gzdiablo 2011-10-21
  • 打赏
  • 举报
回复
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编码
弦弦 2011-10-21
  • 打赏
  • 举报
回复
cookie的作用域取决于你自己的设置,
Cookie.Domain = "www.xxxxx.com" www.站点下的所有子页面都可以访问你设定的cookie.
Cookie.Domain ="www.xxxxx.com" ; Cookie.Path = "/bbs",www主机的bbs下可以取

星小野 2011-10-21
  • 打赏
  • 举报
回复
mark,有心人,天不负
弦弦 2011-10-21
  • 打赏
  • 举报
回复
session
作用域:HTTP会话内,在当前会话中有效,HTTP会话开始到结束这段时间
可存放的类型:任意类型
存放位置:服务端
----------------
application
作用域:服务器生命周期内,在所有应用程序中有效,服务器启动到停止这段时间
可存放的类型:任意类型,Application对象可以存放其它对象
存放位置:服务端
----------------
cookie
作用域:
可存放的类型:cookie.Values.add(string,string),但是基元类型都有ToStrng()方法,所以我觉得应该是可以转换成String类型的任意类型、
存放位置:客户端
----------------
viewstate
作用域:当前类,viewstate由于只是将数据存入到页面隐藏控件
可存放的类型:viewState仅支持string、int、bool、集合、哈希表以及自定义的一些类型
存放位置:客户端
----------------
Querystring
作用域:web项目中
可存放的类型:基元类型
存放位置:

62,017

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧