【Java从零到架构师第二季】【12】会话跟踪—Cookie&Session


持续学习&持续更新中…

学习态度:守破离


会话跟踪

什么是会话跟踪

在这里插入图片描述

会话跟踪的特点

  • 先有Cookie,再有Session

  • Session是基于Cookie的,Session底层就使用了Cookie

  • 会话:

    1. 一个客户端与服务器之间的**一系列(多次)请求与响应(交流)**就是一个会话。
    2. 会话过程中的数据可以放在Session中。
    3. 一个客户端(浏览器)对应一个Session对象。可以理解为:一个Session就代表一个会话
    4. Session死了(默认是浏览器被关闭了)就可以理解为一次会话结束
    5. Session用于同一个客户端中多次请求之间的数据共享

Cookie

参考资料

  • https://zh.javascript.info/cookie
  • https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Cookies

什么是Cookie

在这里插入图片描述

Cookie的有效期

在这里插入图片描述

Cookie的作用域

在这里插入图片描述

在这里插入图片描述

设置Cookie时:Js(客户端)中的path不写默认是:/;Java(服务端)中的path不写默认是/context path

服务器设置Cookie

在这里插入图片描述

服务器存储Cookie时,响应头Response Headers中设置了Cookie,因此服务器可以设置Cookie到客户端

存储Cookie

JavaScript:

	// key=value
	// 注意:分号(";")后要有一个空格(" ")
	// ; 后面的是对前面cookie的描述,后面还可以有更多描述(domain、path等)
    // document.cookie = 'name=Tom; max-age=10'  // 10秒后过期
    document.cookie = 'name=Tom' // 关闭浏览器后Cookie失效
    document.cookie = 'sex=male'

Java:

	Cookie cookie = new Cookie("name", "Jackson");
	response.addCookie(cookie);

获取cookie

JavaScript:

    console.log(document.cookie)

Java:

        final Cookie[] cookies = req.getCookies();
        if (null != cookies) {
    
    
            for (Cookie cookie : cookies) {
    
    
                System.out.println(cookie.getName() + "_" + cookie.getValue());
            }
        }

Session

Session特点

  • Session用于同一个客户端下多次请求之间的数据共享
  • 一个客户端(浏览器)对应一个Session对象
  • 一个Session就代表一个会话
  • Session死了(默认是浏览器被关闭了)就可以理解为一次会话结束

getSession内部原理

在这里插入图片描述

在这里插入图片描述

JSESSIONID

在这里插入图片描述

Session的有效期

在这里插入图片描述

Cookie与Session的总结

在这里插入图片描述

注意和一些细节

  1. Cookie在客户端存储;Session在服务器端存储。

  1. Js和Java设置Cookie的max-age:
  • Js和Java
    • 不写max-age:浏览器关闭后Cookie失效
    • max-age>0:数秒后Cookie失效
    • max-age=0:删除该Cookie
  • Js
    • max-age<0:删除该Cookie
  • Java
    • max-age<0:浏览器关闭后Cookie失效

  1. 客户端请求服务器时,请求头Request Headers中设置了Cookie,因此客户端可以发送Cookie到服务器

  2. 服务器存储Cookie时,响应头Response Headers中设置了Cookie,因此服务器可以设置Cookie到客户端


参考

李明杰: Java从0到架构师②JavaEE技术基石.


本文完,感谢您的关注支持!


Guess you like

Origin blog.csdn.net/weixin_44018671/article/details/121207098