Asp.net中的Session和Cookie

  • Session
    • 如何创建Session
    • 如何使用Session
    • 如果操作Session
    • 什么是Session?
      • 它是一种记录客户状态的机制。使用上比Cookie简单,但是当用户增多时,会对增加服务器的存储压力。
      • 如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。
    • Session的运行机制
      • 创建Session->调用Session(增加内容,只会保存在服务器中)->生成Session ID->发送给客户端
      • 客户端发起请求->带上Session ID->服务器端接收请求->匹配对应的Session
    • Session的生命周期
      • 为了高速的存取数据,它保存在服务器的内存中。每个用户都有它自己独一的ID值。
      • Session在用户第一次访问服务器的时候自动创建。需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session。如果尚未生成Session,也可以使用request.getSession(true)强制生成Session。Session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。用户每访问服务器一次,无论是否读写Session,服务器都认为该用户的Session“活跃(active)”了一次。
    • Session的有效期
      • 为防止内存溢出,服务器会把长时间内没有活跃的Session从内存删除。这个时间就是Session的超时时间。如果超过了超时时间没访问过服务器,Session就自动失效了。
      • Session的超时时间为maxInactiveInterval属性,可以通过对应的getMaxInactiveInterval()获取,通过setMaxInactiveInterval(longinterval)修改。
      • Session的超时时间也可以在web.xml中修改。另外,通过调用Session的invalidate()方法可以使Session失效。
    • Session的常用到的地方
      • 用户登录。
  • Cookie
    • 什么是Cookie
    • Cookie的作用
  • Session和Cookie的区别
    • Cookie的数据存放在浏览器上,Session的数据存放在服务器上。
    • Cookie安全性低,很容易被别人解析本地的Cookie。Session的安全性较高。
    • Session会在一定时间内保存数据到服务器上。但是,当访问量增多时,会比较占用服务器的内存,从而影响服务器的性能。
    • 单个Cookie在客户端的限制大小是3k,换句话说就是客户端只能存放3K左右的信息在在浏览器中。
    • 如果是考虑到服务器的性能可以使用Cookie,如果考虑安全性可以使用Session。  
    • Session和Cookie分别属于服务器端和客户端。但是前者对后者有依赖的关系。当服务器端执行Session机制时候回生成一个ID值,这个ID的值会发送给客户端,然后客户端每次请求都会把这个ID值放到http请求的头部发送给服务端,而这个ID值也会被服务器端的保存下来,而保存的容器就是Cookie。所以,当我们完全禁掉浏览器的Cookie的时候,Session不能正常的使用。

猜你喜欢

转载自www.cnblogs.com/ZengJiaLin/p/8616070.html
今日推荐