面试被问到 cookie和session

Posted by Bibooo on 07-15,2022

我貌似还没做到过跟 cookie 和 session 相关的。这是记录一下,也是学习!![Sim.jpg][1]

cookie 客户端电脑中用于保存会话状态的资源是保存在客户端电脑里面的。(网络会话状态跟踪的技术)

会话是一组请求与响应构成,围绕着一件事做请求与响应。

HTTP 协议是一种无状态协议,这次请求与响应下一次是获取不到的,没办法实现状态的跟踪。所以产生了 cookie

cookie 是由服务器生成,保存在客户端的一种信息载体。这个载体存放用户访问站点该站点的会话状态信息。

服务器生成 cookie 放在响应头,响应的形式发送到客户端。客户端接受到响应后,将 cookie 保存到客户端。当客户端再次发送同类请求后,在请求中会携带保存在客户端的 cookie 数据,发生到服务端,由服务器对会话进行跟踪。

cookie 是由若干键值对构成,这里的键一般称为 name,值称为 value。键和值都是 字符串

哔哩哔哩 av: BV1hw411d7Vg

session (整个web开发的技术)

session 即会话,是 web 开发中的一种会话状态跟踪技术。cookie 是将会话状态存在 客户端硬盘里。而 session 是存放在服务端

在服务端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务端的对象中

为什么使用cookie和session

我们都知道 http 协议是无状态的,服务器无法识别两条 http 请求是否是同一个用户发送的。如果想记录多次请求是否是同一个用户发送的。我们通常使用 cookie 和 session 来确定会话双方的身份。

第一次访问创建 session 对象,给 session对象分配一个唯一的ID

把SESSIONID 作为 cookie 的值发送给浏览器保存

第二次访问的时候,浏览器带着 SESSIONID 的 cookie 访问服务器

服务器校验验证