Session和Cookie区别介绍+面试题 AHv5KSLV

泛亚电竞

泛亚电竞

Session

会话:

  • 对应的区别英文单词:session
  • 用户打开浏览器,进行一系列操作,然后关闭浏览器。整个过程叫做一次会话
  • 一个会话包含多次请求

session机制属于B/S结构的介绍一部分,主要的作用就是为了保存会话状态。(用户登录成功后,将用户一直登录的面试状态保存到会话中)

使用session机制的原因

  • 因为HTTP协议是一种无状态协议
    • 无状态:请求的时候,B和S是连接的,当请求结束后,连接断开 。
    • 可以降低服务器的区别压力 。
  • 为了保存会话状态,只能使用session 。介绍
  • 不使用request和application的面试原因
    • request的作用域太小:一次请求过后就销毁,再次请求,request对象不是同一个。
    • application的区别作用域太大:一个应用一个,浏览器打开~关闭,再打开一个浏览器,还是同一个application对象,不符合一次会话状态 。
  • 从浏览器打开到关闭,session对象都是介绍同一个 。

session的面试实现原理

图片描述:

文字描述:

  1. 浏览器第一次访问服务端,服务端会生成一个对象以及对应的sessionId,将sessionId返回给浏览器
  2. 浏览器拿到这个sessionId后,以cookie的形式保存sessionId
  3. 下一次访问服务端的时候,自动将浏览器内存中的sessionId发送给服务端,服务端根据sessionId找到对应的session对象
  4. 关闭浏览器后,内存消失,cookie消失,sessionId消失,会话结束

第一次访问,response中收到一个服务端返回的sessionId,以cookie的形式存储=7A

 

下一次再访问的时候,会自动的将sessionId发送给服务端

cookie禁用

服务端正常向浏览器发送sessionId,但是浏览器拒收,所以浏览器器每次访问服务端,返回的session对象都是全新的。

如果想在cookie禁用情况下,使用session机制:

使用URL重写机制:http://localhost:8080/testSession;jsessionid=E62524626BE76547D7287F6B7BB73239

这样的区别成本较大,因为每次访问服务路径,都需要拼接一个sessionId  。

总结

  • session是介绍保存在服务端的,由服务端负责创建
    • 创建的方法:
      • request.getSession(); // 获取到一个session对象
      • request.getSession(false); // 会判断当前session是否存在,不存在返回的session对象是null
  • 因为HTTP协议的B/S结构,浏览器关闭,服务端是不知道,所以session并不会销毁,当一段时间内session对象没人操作,这个session对象就会销毁,默认时间是30分钟 。
  • 一次会话:session创建~session销毁
  • session两种模式:
    • 手动销毁:服务端调用API:invalidate();
    • 超时销毁:一段时间内没人操作session对象

Cookie

  • 在session的面试实现原理中,每一个session对象都有一个对应的sessionId 。
  • 例如:JSESSIONID=5CB05924651451FD94F42011461CC4FB,这个键值对数据就是区别一个cookie实例。
  • 只要浏览器不关闭,用户再次发起请求,浏览器会自动将"运行内存"中的介绍cookie发送个服务端
  • 服务端根据"5CB05924651451FD94F42011461CC4FB"这个值去找对应的session对象
  • cookie中的key 和 value都是字符串

保存位置

  • 最终保存在浏览器客户端上
  • 也可以保存在运行内存上【浏览器关闭后cookie就消失】
  • 还可以保存在磁盘文件上【永久保存】

作用

  • cookie和session一样,都是为了保存会话状态

java中操作cookie

创建cookie实例:

Cookie product = new Cookie("productId","1gaga3g23t32g");Cookie user = new Cookie("name","admin");

设置cookie的有效时间

  • 有效时间 > 0 该cookie写入到磁盘中 。
  • 有效时间 = 0 该cookie写入到磁盘中,覆盖之前设置的面试cookie,也可以理解为删除cookie
  • 有效时间 < 0 该cookie会被保存到浏览器运行内存上
  • 不设置 该cookie会被保存到浏览器运行内存上
// 设置有效时间product.setMaxAge(60 * 60);

设置cookie关联的路径

举例URL:http://localhost:8080/cookie/create

默认关联的路径为:http://localhost:8080/cookie/*,这些路径浏览器都会自动发送cookie到服务端

如果设置了关联路径,就以设置为主

product.setPath("/cookie");

返回cookie给浏览器

response.addCookie(product);

服务端获取cookie

返回值为一个数组,当cookie获取不到时,返回null

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

面试题

cookie和session的区别

1.Session的定义:

Session对象是存储在服务器端的,主要用来存储用户会话所需的属性数据和配置数据。SessionlD需要存储在浏览器端,浏览器发送接口请求的时候需要带着这个SessionlD。

2.Cookie的定义:

Cookie是一小段存储在浏览器端的文本数据,大小不超过4KB 。

某些网站采用Session机制识别用户的身份,通常也会将SessionlD存储在Cookie中。发送网络请求的时候,Cookie会在请求头里一起发送给服务器端 。

为什么需要cookie和session?

Cookie 和 Session 是用来在客户端和服务器之间存储和维护状态信息的两种不同技术。

Cookie 是客户端存储的一小块数据,它会在客户端和服务器之间来回传递。Cookie 会被存储在浏览器的文件系统里,并且在浏览器发送请求的时候会自动携带这些数据。

Session 是在服务器端存储的一小块数据,它可以用来跟踪用户的状态 。Session 数据存储在服务器端,并且由服务器端来维护。 客户端访问服务器时,服务器会根据客户端的请求来确定客户端的身份,并且为客户端分配一个session ID  。客户端每次请求时都会携带session ID ,服务器通过这个 session ID 来识别客户端并获取相应的 session 数据 。

详述 session 工作原理?

Session 是一种在 Web 应用程序中跟踪用户状态的机制。当用户访问 Web 应用程序时,服务器会为该用户创建一个唯一的会话 ID,并将该 ID 存储在用户的浏览器中的 cookie 中。在用户与应用程序交互时,服务器会使用该会话 ID 来识别用户,并在服务器端存储与该用户相关的信息。这些信息可以包括用户的登录状态、购物车内容、浏览历史等。通过使用 session,Web 应用程序可以实现更高级的功能,如用户身份验证、数据持久化等。

为什么说session 比cookie更安全?

Cookie 是一种在用户计算机上存储数据的机制。Web 应用程序可以使用 Cookie 存储用户信息,例如用户 ID 、偏好设置和购物车内容等 。但是,Cookie 存储在用户计算机上,而且可以在客户端上被访问和修改,这使得 Cookie 更容易受到攻击和伪造,从而使其成为安全威胁。

相比之下,Session 机制将数据存储在服务器端,并且仅在用户与 Web 应用程序交互时将其发送到客户端。用户无法访问或修改存储在服务器上的 Session 数据,这使得 Session 比 Cookie 更安全。此外,Web 应用程序可以使用 SSL/TLS 加密来保护传输过程中的 Session 数据,从而进一步增强安全性 。

总的来说,虽然 Cookie 与 Session 都用于 Web 应用程序中的用户跟踪,但 Session 更安全,因为它将数据存储在服务器端,而不是在用户计算机上存储,从而减少了安全风险 。

chatgpt免费软件,chatgpt api 免费接口,chatgpt 聊天机器人教程,chatgpt 指令大全,chatgpt app

Session和Cookie区别介绍+面试题

CHATGPT驱动智能化搜索  :百度的前瞻布局

百度利用CHATGPT的智能生成能力 ,不仅提升了搜索引擎的质量,还为用户提供了更智能 、更有针对性的搜索结果。CHATGPT使得搜索更加智能化  ,更能满足用户的需求。


 

相关信息

(内容如有侵权,请联系我们删除) Copyright © 1991-2023 泛亚电竞 版权所有 鲁ICP备19084661号