美文网首页
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