Session与Cookie

目录

一、Cookie

1.定义

2.特点

二、Session

1.定义

2.特点

三、Cookie与Session在Web应用中的协作方式

四、Cookie与Session的区别

一、Cookie

1.定义

当用户第一次访问网站时,服务器会创建一个Cookie并将其发送到用户的浏览器。浏览器会将Cookie存储在本地,并在随后的请求中将其发送回服务器。这样,服务器就可以通过Cookie来识别用户,并据此提供相应的服务。

2.特点

(1)存储位置:Cookie数据保存在客户端的浏览器上。

(2)存储类型:Cookie只能存储字符串类型的数据。

(3)大小限制:单个Cookie保存的数据大小通常不超过4KB,且一个网站在客户端存放的Cookie数量也有限制(如大多数浏览器限制一个站点最多保存20个Cookie)。

(4)生命周期:Cookie的生命周期可以由服务器设置,可以设置为会话期间有效(即浏览器关闭时失效),也可以设置为持久化存储(即浏览器关闭后仍然有效)。

二、Session

1.定义

当用户首次访问网站时,则 Web 服务器将自动创建一个 Session 对象。该对象的sessionID会被传递给用户的浏览器,并将其存储在用户的浏览器中(通常是通过Cookie的形式)。在随后的请求中,用户会携带这个Session ID与服务器进行通信,服务器则根据Session ID来识别用户并提供相应的服务。

2.特点

(1)存储位置:Session数据保存在服务器上。

(2)存储类型:Session能够存储任意的Java对象(或其他编程语言的对象),不仅限于字符串类型。

(3)大小限制:Session的大小限制通常取决于服务器的内存大小,没有固定的限制。

(4)生命周期:Session的生命周期由服务器设置,一般为一段固定的时间(如30分钟)。如果用户在这段时间内没有与服务器进行交互,则Session会被自动销毁。

三、Cookie与Session在Web应用中的协作方式

1.用户第一次访问网站,服务器为该用户创建一个Session,并生成一个Session ID。

2.服务器将Session ID通过设置响应头的Set-Cookie字段发送给客户端浏览器。

3.浏览器收到响应后,会将Session ID保存为Cookie。

4.在之后的每次HTTP请求中(只要请求的资源在Cookie的作用域内,且未过期),浏览器都会自动在请求头部包含Cookie字段,并将之前保存的包含Session ID的Cookie发送给服务器。

5.服务器通过解析请求头中的Cookie字段,获取到对应的Session ID。

6.服务器使用Session ID来查找对应的Session,一旦找到对应的Session,服务器就可以读取或更新该Session中存储的用户状态信息。

四、Cookie与Session的区别

SessionCookie
存储位置服务器端客户端浏览器
存储类型可以存储任意对象只能存储字符串类型数据
大小限制无固定限制,取决于服务器内存单个Cookie不超过4KB,站点限制视浏览器而定
安全性相对较高,数据存储在服务器上相对较低,数据存储在客户端,可能被篡改或窃取
生命周期由服务器设置,一般为固定时间(Tomcat中session的默认生命周期是30分钟)可由服务器设置,可以是会话期间有效或持久化存储
应用场景用户登录状态管理、用户数据共享等用户登录状态保持、用户偏好设置等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值