A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 社会佩奇 于 2018-10-11 15:47 编辑

  由于http协议无状态,需要用session记录客户状态,如购物车场景,服务端为用户创建特定session,用于标识并跟踪用户
  服务端保存session的方法很多,内存,数据库,文件都有
  集群时考虑session的转移,大型网站会有专门的session服务器集群来保存用户会话,这个时候session一般存放在内存

  服务端如何识别特定的客户?
  每次http请求,客户端会发送响应cookie到服务器,大多数应用用cookie来实现session跟踪的
  第一次创建session时,服务端会在http协议告诉客户端,需要在cookie类里记录一个session id,以后每次请求会发送这个id到数据库,我就知道你是谁了
  如果浏览器禁用了cookie,可以url重写来进行会话跟踪

  Cookie登陆场景,登陆过一次网站,第二次访问不需要输入账号密码自动登陆,就是把信息写道Cookie里,访问网站的是时候,网站页面的脚本读取Cookie,自动帮你把用户名填写了

Cookie
cookie机制


cookie内容




第一次访问可以看到响应头包含cookie,发送给客户端




第二次访问可以看到请求头也包含了cookie,是服务器端发送到客户端保存的




cookie是会话级别,也就是说浏览器开始到关闭,关闭浏览器时cookie则消失,但是有时候为什么没有消失呢,是因为给cookie设置了在客户端的持久化时间
设置cookie持久化时间
[AppleScript] 纯文本查看 复制代码
cookie.setMaxAge(10*60*1000); 设置cookie在浏览器中存储时间为10分钟,到时间自动删除cookie信息

设置cookie携带路径
[AppleScript] 纯文本查看 复制代码
cookie.setPath("/");访问服务器下所有资源都携带这个cookiecookie.setPath("/项目名/当前页面");则访问当前页面才携带cookie


Session

session技术是基于cookie
cookie技术存储session编号

session机制
[AppleScript] 纯文本查看 复制代码
session是一种服务度机制,类似散列表结构来存储用户数据浏览器第一次向客户端发送请求时,服务器会自动生成一个session和sessionidsessionid唯一标识这个session服务器响应时把sessionid发送给浏览器浏览器第二次向服务器发送请求时就会携带这个sessionid服务器通过这个id找到对应的session获取用户数据



session缺点
cookie被禁止,session也会被禁止,可以通过url重写拜托
Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份Session数据放在服务器上,Cookie数据存放在客户的浏览器上

session的生命周期
生命周期
[AppleScript] 纯文本查看 复制代码
创建        
第一次执行request.getSession()时创建
销毁    
    服务器(非正常)关闭   
    Session过期        
         tomcat下web.xml自动配置    
     手动销毁        
         session.invalidate();
服务器关闭,session就销毁了嘛?
[AppleScript] 纯文本查看 复制代码
不对,有时间的,看session是否过期


session和cookie区别

session保存在服务器,cookie保存在客户端session中保存的时对象,cookie保存的是字符串session不能区分路径,同一个用户访问一个网站期间,所有的session在任何一个地方都可以访问cookie如果设置路径,则在某些地方不能访问session需要借助cookie才能正常工作,如果禁用cookie,session则失效客户端会在发送请求的时候,自动将本地存活的cookie封装在信息头发送给服务器

session和cookie应用场景

session上下文机制,针对每一个用户,通过sessionid来区分不同客户session是以cookie或url重写为基础的,默认使用cookie实现,系统会创造一个名为jsessionid的输出cookie重要状态走session,不重要走cookie,登陆信息用session,购物车用cookie



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马