Cookies、Session、Cache

Cookies

  • 存在客户端的少量文本数据
  • 存于浏览器进程中或者硬盘中
    如果响应报文头中set-cookie:中有Exprise:就存在浏览器所在机器的硬盘中,反之则存于浏览器进程中。
  • 服务器写cookie的代码
    HttpCookie cookie=new HttpCookie(“uname”,”admin”);
    cookie.Exprise=DateTime.Now.Add(3);//设置cookie的有效期
    cookie.Path=”/Admin/”;//设置cookie的作用域
    cookie.Domain=”www.baidu.com”:
    Response.Cookies.Add(cookie);

Session:

  • session是存在服务器中进程内存中(状态服务器,数据库中)。
  • 以asp.net_SessionID 为键的cookie形式(set-cookie)通知浏览器存起来(一定是存在浏览器的进程内存中的)。
  • 生命周期在当前浏览器的会话中才有效。
  • asp.net处理机制获取session是在9,10个管道事件中,判断是否实现了接口System.Web.SessionState.IRquireSessionState接口,如果有实现则会将session池中的session对象赋值给当前上下文中的session属性。

Cache

  • 缓存是存在于服务器的进程内存中的(也有可能是存在于第三方缓存服务器软件中(Memcached,Reids))
  • 缓存分为:
    1. 前台页面缓存 (.aspx上要增加<% OutPutCache Duration=”60” varParmas=”id;name” %>)
      (1)、整页缓存 varParmas=”none”
      (2)、根据参数来缓存varParmas=”id;name”
      (3)、根据控件id来缓存 varControlID=”dpid1”
      (4)、将缓存策略的配置信息放入web.config中 providfile=”配置名称”
      (5)、本质是什么?
      答:
      ①服务器第一次会创建:Last-Modified ,Exprise 关系:Exprise=Last-Modified + 页面output指令集中的Duration 的秒数
      ②浏览器:将Last-Modified中的时间以If-Modified-Since指令发送给服务器
      ③浏览器判断当前请求的时间点如果小于Exprise 的时间,则直接从自己的缓存中获取结果(html+css+js) 解析成dom元素呈现给用户
      ④服务器在第6,7个管道事件,根据浏览器发送过来的If-Modified-Since 的时间和服务器接收到请求的时间点比较,如果差值 < Duration 设置的秒数,则从缓存中将数据响应回浏览器.
    2. 数据缓存(在当前网站iis进程中开辟一块内存HttpRuntime.Cache.add(“key”,”admin”))
      (1)、数据缓存的过期策略
      a) 绝对过期时间
      b) 相对过期时间
      c) 文件依赖缓存
      d) 数据库依赖缓存
      (2)、缓存的访问有效期是什么?
      比如说:
      用户A在A电脑上通过浏览器访问网站创建的缓存
      用户B在B电脑上通过浏览器能否访问到?能
      (3)、服务器如何创建一个缓存(代码如何写)
      HttpRuntime.Cache.add(“key”,”object”,依赖项,绝对过期时间,相对过期时间,当前缓存的级别,缓存失效的回调函数)
      (4)、缓存的生命周期
      1、如果没有设置任何过期策略则跟应用程序的生命周期(iis重启缓存在失效)
      2、和第1点中的4种过期策略有关

Session和Cookie区别

  • Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;
  • Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值