Cookie 和 Session

简介: 1. 什么是 HTTP2. Cookie2.1 图解 Cookie 工作原理3. Session3.1 图解 Session 工作原理4. Cookie 与 Session 的区别

1. 什么是 HTTP

首先要先介绍一下什么是 HTTP


HTTP:超文本传输协议,它是一个应用层协议,是万维网数据通信的基础,通过 HTTP 协议请求的资源由统一资源标识符(URL)来标识


HTTP 是无状态协议,说明它不能以状态来区分和管理请求和响应,所以服务器单单从网络连接上无法得知客户身份


所以就需要给客户端们办法一个通行证,每人一个,无论谁访问都必须带有通行证,这样服务器就可以通过通行证得知客户身份了。这就是 Cookie 的工作原理


2. Cookie

上面说过 Cookie 就像是通行证,通行证上保存的就是客户端的用户信息,随着每次请求发送到服务器


Cookie会根据响应报文里的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下客户端再向服务端发起请求时,客户端会自动在请求报文中加入Cookie值之后发送出去.


之后服务端发现客户端发送过来的Cookie后,会检查是哪个客户端发送过来的请求,然后对服务器上的记录,最后得到了之前的状态信息。


如下,是访问百度官网时,响应标头中的 Set-Cookie

4.png


2.1 图解 Cookie 工作原理

5.png6.png



3. Session

服务器执行 Session 机制的时候会生成 SessionId,这个 Id 会通过 Set-Cookie 发送到客户端,并会被客户端保存下来,保存的容器就是 Cookie


客户端每次请求都会把这个 Id 值放在请求的头部发送给服务器


因此当完全禁用掉浏览器的 Cookie 时,服务器的 Session 也会不能使用


3.1 图解 Session 工作原理


6.png


4. Cookie 与 Session 的区别

Cookie 数据存放在客户的浏览器上,Session 数据放在服务器上,但是服务器的 Session 的实现对客户端的 Cookie 有依赖关系

Cookie 不是很安全,别人可以分析放在本地的 Cookie 并进行 Cookie 欺骗,考虑安全应当使用 Session

Session 会在一定时间内保存在服务器上。当访问增多,会比较占用服务器性能


目录
相关文章
|
6天前
|
存储 自然语言处理 API
Session、cookie、token有什么区别?
Session、cookie、token有什么区别?
27 1
|
6天前
|
存储 开发框架 NoSQL
ASP.NET WEB——项目中Cookie与Session的用法
ASP.NET WEB——项目中Cookie与Session的用法
44 0
|
6天前
|
JavaScript 前端开发 Java
【JavaEE】使Cookie与Session失效-Servlet上传文件操作-优化表白墙(下)
【JavaEE】使Cookie与Session失效-Servlet上传文件操作-优化表白墙
9 0
|
6天前
|
存储 前端开发 Java
【JavaEE】使Cookie与Session失效-Servlet上传文件操作-优化表白墙(上)
【JavaEE】使Cookie与Session失效-Servlet上传文件操作-优化表白墙
8 0
|
6天前
|
存储 JSON 前端开发
【JavaEE】Cookie与Session的前后端交互-表白墙登录设计
【JavaEE】Cookie与Session的前后端交互-表白墙登录设计
11 0
|
6天前
|
存储 安全 Java
JavaWeb中的Session和Cookie
本文介绍了JavaWeb中的会话跟踪技术,主要讨论了Cookie和Session的概念、用途、设置与获取方法以及生命周期。Cookie是客户端技术,用于在用户浏览器中存储信息,通常用于保持用户登录状态,有效期可设置。Session则保存在服务器端,用于跟踪用户状态,例如登录信息,生命周期可通过设置最大不活动时间控制。两者之间的主要区别在于数据存储位置和安全性,Cookie数据在客户端,可能存在安全风险,而Session数据在服务器端,相对较安全但会占用服务器资源。
|
6天前
|
存储 搜索推荐 安全
【Cookie和Session辨析】
【Cookie和Session辨析】
12 2
|
6天前
|
存储 缓存 安全
【PHP开发专栏】PHP Cookie与Session管理
【4月更文挑战第30天】本文介绍了PHP中的Cookie和Session管理。Cookie是服务器发送至客户端的数据,用于维持会话状态,可使用`setcookie()`设置和`$_COOKIE`访问。Session数据存于服务器,更安全且能存储更多数据,通过`session_start()`启动,`$_SESSION`数组操作。根据需求选择Cookie(跨会话共享)或Session(单会话存储)。实战中常组合使用,如Cookie记住登录状态,Session处理购物车。理解两者原理和应用场景能提升Web开发技能。
|
6天前
|
存储 安全 前端开发
禁用Cookie后Session还能用吗?
禁用Cookie后Session还能用吗?
26 1
|
6天前
|
Java
Cookie和Session
Cookie和Session
19 0