WebForm总结Day03_状态管理cookie_session_application
2015-09-25 19:15
447 查看
状态管理
1. 问题1:
退出登陆后,下次再打开登陆页面自动录入上次登陆的用户名
(需要记录上一次登陆的用户名,记录到哪里?)
2. Cookie
Cookie是一种能够让网站服务器(或JS端,使用JQuery.Cookie)
把少量数据(4kb左右)储存到客户端的硬盘或内存,并且读取出来的一种技术。
特点:
1)cookie和域名相关
2)cookie和浏览器相关,不同浏览器存储Cookie的位置是不同的
3)cookie中存储的是少量文本信息(字符串),如果想存对象,可以把对象序列化成字符串
4)cookie过期
没有设置cookie的过期时间,就存在内存中,存储在浏览器的进程中)
设置了过期时间,存储在硬盘上
使用场景:
1)记录上次登陆的用户名
2)记录登陆状态(登陆状态保持7天)
3)记录用户最近浏览的商品
3. 服务器设置Cookie:将内容添加到Cookie中 通过响应报文将set-cookie内容Response输出给浏览器,
由浏览器在本地生成。cookie是http协议规定的内容,浏览器都要遵守的
服务器读取Cookie:浏览器通过请求报文里的Cookie传递浏览器存储的Cookie信息,
服务器获得客户端传来的Cookie,从cookie读取数据必须判断是否为null,因为cookie容易丢失
cookie的Path属性:限制访问localhost/下某个文件夹下的ashx页面才带Cookie内容
否则如果path=/的话 那么访问localhost下所有的内容(图片,js等)都会带上cookie
互联网优化的案例:图片服务器和主站域名不一样,降低Cookie流量的传输。面试时聊网站调优
4. 问题2
登陆后显示登陆的用户名(http请求的无状态)
在一般处理程序中是不能使用session的,但是可以
1)using标记接口System.Web.SessionState,指定目标HTTP处理程序需要对会话状态值具有读写访问权
2)类实现只读接口IReadOnlySessionState,或读写接口IRequireSessionState
5. Session
Session提供了一种把信息保存在服务器内存中的一种方式。它能存储任何数据类型包括自定义对象。
特点:
1)从一个页面跳转到另一个页面Session数据不会丢失,在整个会话过程中Session的数据都不会丢失
2)Session中的数据只由该会话的用户访问
3)当会话过期(20min)或终止时,服务器就会清除 Session 对象
场景:保存登陆状态,过20min时间自动退出
6. Session原理(Session是在服务器端存数据)
当程序第一次为用户存储Session时候,为了标记不同的客户端,
服务器会为每一个客户端生成一个唯一的标示SessionId,sessionId对应一个字典
默认以cookie的形式(无超时时间)返回给客户端。
当下次用户在请求的时候会携带SessionId,
访问Session数据时会以SessionId去取该客户端存储在服务器Session字典中的数据
Session有自动销毁机制(设置失效时间,默认就是滑动过期机制),
如果一段时间内浏览器没有和服务器发生任何的交互,则Session会定时销毁,默认20分钟。
所以使用session的时候一定要判断 context.session["code"]!=null
7. session的问题
ASP.Net已经内置了Session机制。不要放太多的对象到Session
(因为存储在服务器端framework的一个辅助进程里(进程内session),不稳定,数据多了容易丢失)
Session机制并不是Http协议规定的,是ASP.net实现的,
现在PHP、JSP等大部分服务端技术都实现了Session,原理都差不多。
8. cookie和session
Cookie是存在客户端,Session是存在服务器端,
目的是一样的:保存和当前客户端相关的数据(当前网站的任何一个页面都能取到Session、Cookie)
9. 问题3:统计当前在线人数
Application对象(存在服务器上)
Application对象可以存储应用程序级的数据
第一个用户访问站点时,应用程序启动,并创建一个Application对象。
创建成功后,整个应用程序中都可以使用该对象。
除非应用程序关闭,否则对象一直存储在内存中
1. 问题1:
退出登陆后,下次再打开登陆页面自动录入上次登陆的用户名
(需要记录上一次登陆的用户名,记录到哪里?)
2. Cookie
Cookie是一种能够让网站服务器(或JS端,使用JQuery.Cookie)
把少量数据(4kb左右)储存到客户端的硬盘或内存,并且读取出来的一种技术。
特点:
1)cookie和域名相关
2)cookie和浏览器相关,不同浏览器存储Cookie的位置是不同的
3)cookie中存储的是少量文本信息(字符串),如果想存对象,可以把对象序列化成字符串
4)cookie过期
没有设置cookie的过期时间,就存在内存中,存储在浏览器的进程中)
设置了过期时间,存储在硬盘上
使用场景:
1)记录上次登陆的用户名
2)记录登陆状态(登陆状态保持7天)
3)记录用户最近浏览的商品
3. 服务器设置Cookie:将内容添加到Cookie中 通过响应报文将set-cookie内容Response输出给浏览器,
由浏览器在本地生成。cookie是http协议规定的内容,浏览器都要遵守的
服务器读取Cookie:浏览器通过请求报文里的Cookie传递浏览器存储的Cookie信息,
服务器获得客户端传来的Cookie,从cookie读取数据必须判断是否为null,因为cookie容易丢失
cookie的Path属性:限制访问localhost/下某个文件夹下的ashx页面才带Cookie内容
否则如果path=/的话 那么访问localhost下所有的内容(图片,js等)都会带上cookie
互联网优化的案例:图片服务器和主站域名不一样,降低Cookie流量的传输。面试时聊网站调优
4. 问题2
登陆后显示登陆的用户名(http请求的无状态)
在一般处理程序中是不能使用session的,但是可以
1)using标记接口System.Web.SessionState,指定目标HTTP处理程序需要对会话状态值具有读写访问权
2)类实现只读接口IReadOnlySessionState,或读写接口IRequireSessionState
5. Session
Session提供了一种把信息保存在服务器内存中的一种方式。它能存储任何数据类型包括自定义对象。
特点:
1)从一个页面跳转到另一个页面Session数据不会丢失,在整个会话过程中Session的数据都不会丢失
2)Session中的数据只由该会话的用户访问
3)当会话过期(20min)或终止时,服务器就会清除 Session 对象
场景:保存登陆状态,过20min时间自动退出
6. Session原理(Session是在服务器端存数据)
当程序第一次为用户存储Session时候,为了标记不同的客户端,
服务器会为每一个客户端生成一个唯一的标示SessionId,sessionId对应一个字典
默认以cookie的形式(无超时时间)返回给客户端。
当下次用户在请求的时候会携带SessionId,
访问Session数据时会以SessionId去取该客户端存储在服务器Session字典中的数据
Session有自动销毁机制(设置失效时间,默认就是滑动过期机制),
如果一段时间内浏览器没有和服务器发生任何的交互,则Session会定时销毁,默认20分钟。
所以使用session的时候一定要判断 context.session["code"]!=null
7. session的问题
ASP.Net已经内置了Session机制。不要放太多的对象到Session
(因为存储在服务器端framework的一个辅助进程里(进程内session),不稳定,数据多了容易丢失)
Session机制并不是Http协议规定的,是ASP.net实现的,
现在PHP、JSP等大部分服务端技术都实现了Session,原理都差不多。
8. cookie和session
Cookie是存在客户端,Session是存在服务器端,
目的是一样的:保存和当前客户端相关的数据(当前网站的任何一个页面都能取到Session、Cookie)
9. 问题3:统计当前在线人数
Application对象(存在服务器上)
Application对象可以存储应用程序级的数据
第一个用户访问站点时,应用程序启动,并创建一个Application对象。
创建成功后,整个应用程序中都可以使用该对象。
除非应用程序关闭,否则对象一直存储在内存中
相关文章推荐
- Android 5.1 Contacts源码分析(一):Contacts模块文件结构
- Android深入浅出之Binder机制
- 关于android自带的图片压缩
- 一个可以生成边界值,有效等价类无效等价类的小小程序。
- 【Android】 从头搭建视频播放器(5)——将所有放在一起
- android签名
- iOS开发入门杂记
- iOS经典讲解之Objective-C内存管理基础知识及内存管理黄金原则
- 基于Html5的android开发
- Android下屏幕适配
- 在android布局中使用layout_weight的几点技巧和说明layout_weight
- iOS开源项目学习—— AFNetworking
- 【Android】 从头搭建视频播放器(4)——屏幕旋转处理
- BeanPropertyRowMapper
- 前端见微知著JavaScript基础篇:你所不知道的apply, call 和 bind
- 电脑上怎么用微信
- android的WindowManager.addView弹窗添加
- ios URL 中文乱码问题
- ios pop 折叠动画
- android-support-v7 问题 解决