WebForm总结Day03_状态管理cookie_session_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对象。
 创建成功后,整个应用程序中都可以使用该对象。
 除非应用程序关闭,否则对象一直存储在内存中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值