美文网首页
Cookie & Session

Cookie & Session

作者: CaptainXero | 来源:发表于2018-09-06 16:05 被阅读24次

    Cookie

    • 为什么要有Cookie?

      • Http协议是一种无状态的协议,服务器无法从网络连接上确定用户身份。所以为了确定用户身份,使用Cookie作为“令牌”来管理用户身份等信息。
    • Cookie在客户端与服务端交互中的通信过程是怎样的?

    交互

        Cookie是通过HTTP请求和响应头在客户端和服务器端传递的,一个Cookie的设置和传送过程大致与以上几个步骤:*客户端发送一个HTTP请求到服务器,服务器返回一个HTTP响应回客户端,在这个响应报文中包含了Set-Cookie头部。客户端再次访问服务端,携带Cookie头部,服务器端在返回一个HTTP响应到客户端。

        cookie格式如下:

        Set-Cookie: "name=value;domain=.domain.com;path=/;expires=Sat, 11 Jun 2016 11:29:42 GMT;HttpOnly;secure"
    其中name=value是必选项,其它都是可选项。

    • Cookie保存在哪里?
      • Cookie以一小段文本的形式存放在客户端上,在需要记录状态的情形下,由服务器向客户端颁发一个Cookie,由客户端将Cookie进行存储,在后续的由客户端发起的请求中携带这个Cookie,由服务器对这个Cookie进行检查就可以辨识用户。

    Session

    • 为什么要有Session?

      • 类似Cookie,Session也是一种弥补HTTP协议无状态弊端的机制。不同于Cookie的是Session存放在服务端。用户在通过浏览器访问服务器时,服务器把客户端传来的一些信息以某种形式记录在服务器上,客户再次浏览时只需要在服务器上查找Session即可。
    • 谁创建了Session?

      • HttpSession是直到服务器端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建。那么Session什么时候失效呢?

        第一:session调用了 session.invalidate()方法。

        第二:前后两次请求超出了session指定的生命周期时间。

    • Session于Cookie对比

    1. cookie数据存放在客户的浏览器上,session数据放在服务器上;
    2. cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session;
    3. session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。考虑到减轻服务器性能方面,应当使用COOKIE;

        Cookie与Session虽然分别作用于客户端及服务端,但是Session对Cookie在一定程度上有依赖关系。服务端执行Session机制会创建Session的id值,客户端获得这个id后,客户端每次请求都会把这个id放入http请求报文头中发送给客户端。在客户端保存这个id值得容器就是Cookie。

    相关文章

      网友评论

          本文标题:Cookie & Session

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