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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 葉丨 初级黑马   /  2019-5-9 13:46  /  653 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Cookie&Session
1. 能够说出会话的概念
  • 什么是会话?
    一次会话中可以发送多次请求和响应
  • 一次会话:当浏览器第一次打开后与服务器建立连接,一次会话即建立,当某一端关闭会话即结束

2. 能够说出两种会话技术(Cookie和Session)的区别
  • 客户端技术:cookie   存在客户端
  • 服务器端技术:session   存在服务器端

3. 能够创建、发送、接收、删除cookie
  • 创建:Cookie c  = new Cookie("name","value");
  • 发送: response.addCookie(c)
  • 接收:Cookie[]   request.getCookies()
  • 删除:c.setMaxAge(0)

4. 能够说出cookie执行的原理
cookie执行的底层也是基于http协议的,通过抓包分析发现:第一次请求服务器的时候,服务器端会创建cookie并且将cookie发送回浏览器端(通过设置了响应头:set-cookie:msg=hello),浏览器端发现响应头中有set-cookie头后,则将cookie的信息保存在本地,下次再请求的时候,则会自动帮我们把已有的cookie信息携带上发送给服务器(通过请求头:cookie:msg=hello),服务器则可以通过获取cookie的方式取出cookie的信息
5. 能够获取session对象、添加、删除、获取session中的数据
  • 获取session对象:request.getSession
  • 添加(存值):session.setAttribute("key",Object value)
  • 删除:removeAttribute("key")
  • 获取:getAttribute(“key”)

6. 能够说出session执行的原理
浏览器第一次建立会话请求服务器,服务器端会调用request.getSession这行代码---在内存中开辟了一块内存空间存放session,session.setAttribute()就可以存值了,并且在创建完session空间的同时为该空间生成了一把钥匙,该钥匙其实就是一个cookie:JESSIONID=12323432894;返回该cookie到浏览器,浏览器接收到cookie存放在自己的内存中,同时下次请求的时候携带该cookie,当服务器接收到有JESSIONID的cookie时,取出value值来判断是否与我们内存中的session的钥匙相匹配,如果匹配才能取值或存值
7. 能够说出session的创建、销毁时机
  • 销毁
    • 会话关闭
    • invalide() 自杀
    • 默认30分钟到了就失效



session的销毁:
  • 浏览器关闭: 浏览器端的cookie那把钥匙就没了
    • 在浏览器关闭后session依旧能生效,其实可以让钥匙 (cookie)持久化

  • 服务器端关闭




0 个回复

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