Cookie 和 Session
2014-04-10 15:31
169 查看
1、通过URL传递
两个页面之间传递数据最好、后续麻烦最少、最简单的方法就是通过URL传递。
优点:简单,直接,明确知道发给谁,数据不会乱。
缺点:1、如果多个页面或者不确定页面之间要传那么就需要每次跳转都带着;2、不保密。
2、Cookie
1、如果想自由的传递和读取,用Cookie。Cookie是和站点相关的,并且每次向服务器请求的时候除了发送表单参数外,还会将和站点相关的所有Cookie都提交给服务器,是强制性的。Cookie也是保存在浏览器端的,而且浏览器会在每次请求的时候都会把和这个站点的相关的Cookie提交到服务器,并且将服务端返回的Cookie更新回数据库,因此可以将信息保存在Cookie中,然后在服务器端读取、修改。服务器返回数据除了普通的html数据外,还会返回修改的Cookie,浏览器把拿到的Cookie值更新本地浏览器的Cookie就可以。
2、在服务器端控制Cookie案例,实现记住用户名的功能。
1》设置值的页面:Response.SetCookie(new HttpCookie("UserName",username)); //生命周期是浏览器的生命周期。
设置值的页面:
HttpCookie cookie = new HttpCookie("Name", "xlt");
cookie.Expires = DateTime.Now.AddDays(3); //表示三天后过期
context.Response.SetCookie(cookie);
2》读取值的页面:username = Request.Cookies["UserName"].Value;
3、如果不设定Expires那么生命周期则是关闭浏览器则终止,否则“最多”到Expires的时候终止。
4、Cookie的缺点:还不能存储过多信息,机密信息不能存,cookie是可以被清除的,不能把不能丢的数据存到Cookie中;Cookie的大小是有限制的,一般为几K,几百K
5、Cookie无法跨不同的浏览器。
3、submit :只有被点击的submit的 name和value会被传送给服务器。
Session的原理
1、Cookie不能存储机密数据。如果想储存,可以保存一个Guid到Cookie中,然后在服务器中建立一个以Guid为Key,复杂数据为Value全局Dictionary。放到Application中。
2、asp.net已经内置了Session机制,把上面的例子用ASP.NET Session重写。普通的HttpHandler要能够操作Session,要实现IRequiresSessionState接口。
3、Cookie是存在客户端的,Session是存在服务器端的。目的是一样的:保存和当前客户端相关的数据(当前网站的任何一个页面都能取到Session、Cookie)
4、Session有自动销毁机制,如果一段时间内浏览器没有和服务器发生任何的交互,则Session会定时销毁,这也就是为什么一段时间没操作,系统就会自动退出。
asp.net 如何设置单个session 过期时间?
在WEB.CONFIG中配置<sessionState mode="InProc" timeout="60"/>这是60分钟后过期。
两个页面之间传递数据最好、后续麻烦最少、最简单的方法就是通过URL传递。
优点:简单,直接,明确知道发给谁,数据不会乱。
缺点:1、如果多个页面或者不确定页面之间要传那么就需要每次跳转都带着;2、不保密。
2、Cookie
1、如果想自由的传递和读取,用Cookie。Cookie是和站点相关的,并且每次向服务器请求的时候除了发送表单参数外,还会将和站点相关的所有Cookie都提交给服务器,是强制性的。Cookie也是保存在浏览器端的,而且浏览器会在每次请求的时候都会把和这个站点的相关的Cookie提交到服务器,并且将服务端返回的Cookie更新回数据库,因此可以将信息保存在Cookie中,然后在服务器端读取、修改。服务器返回数据除了普通的html数据外,还会返回修改的Cookie,浏览器把拿到的Cookie值更新本地浏览器的Cookie就可以。
2、在服务器端控制Cookie案例,实现记住用户名的功能。
1》设置值的页面:Response.SetCookie(new HttpCookie("UserName",username)); //生命周期是浏览器的生命周期。
设置值的页面:
HttpCookie cookie = new HttpCookie("Name", "xlt");
cookie.Expires = DateTime.Now.AddDays(3); //表示三天后过期
context.Response.SetCookie(cookie);
2》读取值的页面:username = Request.Cookies["UserName"].Value;
3、如果不设定Expires那么生命周期则是关闭浏览器则终止,否则“最多”到Expires的时候终止。
4、Cookie的缺点:还不能存储过多信息,机密信息不能存,cookie是可以被清除的,不能把不能丢的数据存到Cookie中;Cookie的大小是有限制的,一般为几K,几百K
5、Cookie无法跨不同的浏览器。
3、submit :只有被点击的submit的 name和value会被传送给服务器。
Session的原理
1、Cookie不能存储机密数据。如果想储存,可以保存一个Guid到Cookie中,然后在服务器中建立一个以Guid为Key,复杂数据为Value全局Dictionary。放到Application中。
2、asp.net已经内置了Session机制,把上面的例子用ASP.NET Session重写。普通的HttpHandler要能够操作Session,要实现IRequiresSessionState接口。
3、Cookie是存在客户端的,Session是存在服务器端的。目的是一样的:保存和当前客户端相关的数据(当前网站的任何一个页面都能取到Session、Cookie)
4、Session有自动销毁机制,如果一段时间内浏览器没有和服务器发生任何的交互,则Session会定时销毁,这也就是为什么一段时间没操作,系统就会自动退出。
asp.net 如何设置单个session 过期时间?
在WEB.CONFIG中配置<sessionState mode="InProc" timeout="60"/>这是60分钟后过期。
相关文章推荐
- Cookie同Session的关系 (2)
- cookie,Session机制的本质,跨应用程序的session共享
- [ASP.net教程]ASP.NET保存信息总结(Application、Session、Cookie、ViewState和Cache等)
- Web基础(7)Tornado、Cookie、Session、Ajax、文件上传
- cookie session的本质
- Cookie和Session的作用,区别和各自的应用范围,cookie、Session工作原理
- Cookie 和 Session
- Session/Cookie/Token的区别
- cookie 和session 的区别详解
- [py]图解cookie&session
- 会话Session和cookie
- Cookie和Session的作用,区别和各自的应用范围,cookie、Session工作原理
- java攻城师之路--复习java web之Cookie_Session
- session与cookie关系
- Redis+Django(Session,Cookie、Cache)的用户系统
- ASP.NET里session和cookie的区别
- 【词汇详解】Session和Cookie详解
- session与cookie的区别
- cookie与session的关联
- ASP.NET Application,Session,Cookie和ViewState等对象用法和区别