Cookie和Session的区别

目录

cookie 

1、什么是cookie

2.为什么要用cookie

3、cookie的工作原理

4、cookie的特点:

session 

1、什么是session

2.为什么要用session

3、session的工作原理

4、session的特点 

cookie和session的区别


cookie 

1、什么是cookie

Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息 。

2.为什么要用cookie

由于http是无状态协议(服务端和客户端相互之间不认识)

关于http协议详情可以移步    http协议

Cookies可以存储一些在用户电脑上的小文件。它是被设计用来保存一些站点的用户数据,这样能够让服务器为这样的用户定制内容。页面代码能够获取到Cookie值然后发送给服务器,比如Cookie中存储了所在地理位置,以后每次进入地图就可以默认定位到改地点。

3、cookie的工作原理

  1. 当用户第一次登录时,向服务器发送请求
  2. 服务器根据用户信息,服务器帮用户创建一个cookie来识别用户身份,存储在数据库中,并发送给浏览器
  3. 浏览器将获得cookie数据存储在本地浏览器中。(cookie由客户端保存)
  4. 再次发送请求时,服务器会检索cookie,验证用户身份
  • cookie的简易工作流图方便大家理解:

4、cookie的特点:

  • 保存到客户端,容易被篡改(删除、禁用)

  • 保存的数据量有限的(大小受限,最大4kb)

  • 简单易懂好用

session 

1、什么是session

Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了session是一种特殊的cookie。cookie是保存在客户端的,而session是保存在服务端。

2.为什么要用session

由于cookie 是存在用户端,而且它本身存储的尺寸大小也有限,最关键是用户可以是可见的,并可以随意的修改,很不安全。那如何又要安全,又可以方便的全局读取信息呢?于是,这个时候,一种新的存储会话机制:session 诞生了!

3、session的工作原理

  1. 客户端第一次请求服务端;
  2. 服务器生成一份session保存在服务端将该数据(session)的id以cookie的形式传递给客户端;
  3. 客户端第二次请求服务端,浏览器会自动的携带cookie来访问服务器(session_id);

如此可见,session最重要的是session_id,存储在cookie中,所以session依赖于cookie,当一个浏览器禁用cookie功能,session也无法使用!

  • 我们来简单看一下session工作流程图:

4、session的特点 

  • 用于存储一次会话的多次请求,存在服务端。
  • 可以存储任意类型,任意大小的数据
  • 依赖于cookie,浏览器禁用cookie,session也无法使用

cookie和session的区别

1、保存的位置不同

cookie存储在客户端,而session存储在服务端

2、使用的方式不同

cookie:如果在浏览器端对cookie进行设置对应的时间,则cookie保存在本地硬盘中,此时如果没有过期,则就可以使用,如果过期则就删除。如果没有对cookie设置时间,则默认关闭浏览器,cookie就会被删除。
session:我们在请求中,如果发送的请求中存在session_id,则就会找到对应的session对象,如果不存在session_id,则在服务器端就会创建一个session对象,并且将sessionId返回给客户端,可以将其放到cookie中,进行传输。

3、存储内容不同

cookie只能存储字符串,而session存储结构类似于hashtable结构,可以存放任何类型。

4、存储大小不同

cookie最多可以存放4k大小的内容,session则没有限制。

5、安全性不同

session的安全性要高于cooKie

6、性能不同

session会比较占用服务器性能,所以一般情况下我们普遍应用cookie


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你食不食油饼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值