cookie与session


cookie

原理
一次会话中,cookie是由服务器创建,服务器使用过响应头 SET-COOKIE 的方式把 msg=hello 回写到浏览器,浏览器保存,浏览器下次访问该服务器时会通过请求头 COOKIE 的方式把 msg=hello 携带cookie到服务器,服务器可以接受处理

api
  发送
    new Cookie("名字",值)
    cookie.setMaxAge(60*60*24)
    cookie.setPath()
    cookie.setDomain()
    response.addCookie(cookie)
  接受
    Cookie[ ] cks = request.getCookies();
    cookie.getName()
    cookie.getValue()

注意点:
  1.cookie如果重复会覆盖
  2.cookie可以发送多个
  3.cookie可以持久化
  4.cookie在tomcat8开始支持中文,但是不建议,如果要使用中文,空格,特殊符号需要进行编码后再进行操作
  5.cookie可以跨项目和跨服务器进行共享
  6.cookie大小4k以内,个数20个
  7.cookie保存在本地

 

session

api
  reqeust.getSession()

  session.setAttribute()
  session.getAttribute()
  session.removeAttribute()

session创建的时候,创建了一个对象,而这个对象可以存储一些数据,这个session对象在创建的时候,系统会给session提供一个id
  服务器会自动帮我们创建一个cookie对象, JSESSIONID=session对象的id(不是内存中的地址值)
  服务器会把该cookie返回给浏览器,浏览器会把该cookie保存,下次访问会携带该cookie重新到服务器,服务器会判断是否包含JSESSIONID的cookie是否存在,
  如果存在就根据id的值获取目标的session对象


session的固化(钝化)和活化
  钝化
  tomcat关闭时会把session对象保存到硬盘上
  活化
  tomcat启动,加载之前文件,把session对象全部重新创建,把之前保存的值重新赋值,然后把原先保存的文件删掉


session的销毁
  1.session.invilidate()
  2.服务器非正常关闭
  3.默认时间30分钟

 

cookie和session的关系
  session依赖于cookie
  session是保存在服务器的
  cookie在浏览器


作者:xiao_xiaobai,发布于:2019/05/21
原文:https://www.cnblogs.com/xiaoxiaobaizht/p/10900341.html