美文网首页
Session和Cookie

Session和Cookie

作者: 凌云01 | 来源:发表于2020-09-10 08:50 被阅读0次
HTTP请求无状态.png

因为HTTP请求是无状态的,当同一请求client再次进行请求时,server无法记住用户的,为了让server知道用户,引入了Session和Cookie。

cookiesession都是用来跟踪浏览器用户身份的会话方式。

Cookie主要用来记录用户状态,区分用户,状态保存在客户端

Session主要用来记录用户状态,区分用户,状态保存在服务端

Cookie工作原理

  • 浏览器端第一次发送请求到服务器端
  • 服务器端创建Cookie,该Cookie中包含用户的信息,然后将该Cookie发送到浏览器端
  • 浏览器端再次访问服务器端时会携带服务器端创建的Cookie
  • 服务器端通过Cookie中携带的数据区分不同的用户


    Cookie.jpg

怎样删除Cookie?

  • 新Cookie覆盖旧Cookie。
  • 覆盖规则:name、path、domain等需要与原Cookie一致。
  • 设置Cookie的expire等于过去的某一时间点,或者设置maxAge=0。

怎样保证Cookie的安全?

  • 对Cookie进行加密处理
  • 只在https上携带Cookie
  • 设置Cookie为httpOnly,防止跨站脚本攻击。

Session工作原理

  • 浏览器端第一次发送请求到服务器端,服务器端创建一个Session,同时会创建一个特殊的Cookie(name为JSESSIONID的固定值,value为session对象的ID),然后将该Cookie发送至浏览器端
  • 浏览器端发送第N(N>1)次请求到服务器端,浏览器端访问服务器端时就会携带该name为JSESSIONID的Cookie对象
  • 服务器端根据name为JSESSIONID的Cookie的value(sessionId),去查询Session对象,从而区分不同用户。
    name为JSESSIONID的Cookie不存在(关闭或更换浏览器),返回1中重新去创建Session与特殊的Cookie
    name为JSESSIONID的Cookie存在,根据value中的SessionId去寻找session对象
    value为SessionId不存在(Session对象默认存活30分钟),返回1中重新去创建Session与特殊的Cookie
    value为SessionId存在,返回session对象
    Session工作流程.jpg

相关文章

网友评论

      本文标题:Session和Cookie

      本文链接:https://www.haomeiwen.com/subject/dqksektx.html