cookie和session的区别和联系

cookie

why:
一次会话结束——客户端向服务器发送请求,服务器做出响应,就是一次会话。
客户端服务器就会断开连接
当用户下次再来请求服务器,服务器就没办法识别此用户,故而有了cookie机制。、

通俗的讲,就是方便下次客户能直接进入主题,而不用做一系列琐碎的操作。(具体在下面的session中讲到)
但是限制在同一个浏览器中使用。x网站的cookie是无法给y网站使用的

how:
客户端请求服务器时,如果该服务器需要记录该用户状态,就使用response向客户端浏览器发送一个cookie,客户端会将cookie保存起来。当浏览器再次请求该网站时,浏览器把请求和该cookie一起提交给服务器。服务器检查该cookie,以此来辨认用户状态。
在这里插入图片描述
在这里插入图片描述


session

1. what
会话控制,用来了存储特定用户会话所需的信息,在整个用户会话中一直存在

举个栗子:
我在浏览器中登陆了processon,进入后台编辑页面,
当我把这个链接复制下来,https://www.processon.com/diagraming/5c70f6d2e4b056ae2a13f2e6
然后关掉我之前打开的页面,重新打开复制的链接地址,依然能进去后台页面
但在一个没有登陆过的浏览器打开这个地址,系统不会让你进入。只会停留在登陆页面 https://www.processon.com/login

这就是session起到的作用,我在同一个浏览器页面二次登陆时,session里面已经有了登陆过的信息,只需要去验证就好了。
而在其他浏览器是第一次访问,session里没有我登陆的信息,所以就跳转到 了登陆界面
在这里插入图片描述
在这里插入图片描述

2. why——

为什么有了cookie,还需要session呢?
cookie存在于客户端
将用户信息通过网络发送到客户端是极不安全的
且cookie大小不能超过4K
所以就出现了服务器端的机制——session

3. how
用户和服务器连接时,就建立了一个session,服务器为之分配了一个唯一的sessionID。
很多时候session是和cookie共同使用的,客户端将请求和cookie发送至服务器,session根据唯一sessionID和cookie辨别用户。这样既增加了安全机制,也可以方便用户操作。

拿牛腩发布系统举例子:

如果登陆成功了,就将用户信息保存到session里面,并为之生成一个唯一的sessionID。
下图的例子“name”是被传过来的值。
用具体的值来表示,如:Session["admin"] ==1
这个session的名字是admin,值是1
在这里插入图片描述

当跳转页面到后台时,首先会用session做个判断,是否有登陆的信息。如果有就访问,如果没有就返回登陆

if(Session["admin"]!=null && Session[admin"].ToString()=="nihao"),

在这里插入图片描述

举个栗子:
在这里插入图片描述

4. 功能
session中的数据保存在服务器端,在客户端需要的时候创建了session,在客户端不需要的时候销毁session,使它不再占用内存。如果不及时销毁,就会造成内存不足。故session有一个生命周期,asp.net默认session的生命周期为20分钟。如:我们在9:00设置了一个session,如果9:20还没请求,那么生命周期就结束,如果9:19用户又向服务器发送了一个请求,那么这个生命周期又在当前的基础上增加了20分钟。

session还可以实现登陆同一个账号,后登陆的账号将前一个账号挤掉的功能。
正常请求:
在这里插入图片描述
一个用户只能登陆一次:
在这里插入图片描述
5、session共享
多台服务器能共同分享一个session。

这里session的共享是通过储存在redis中实现的。当A服务器创建好session后保存到redis中,这样B服务器就可以直接在redis中拿到session使用。这就是session共享。

cookie和session的区别

cookiesessioon
位置——存放在客户端服务器端
储存大小——不超过4K理论上没有限制
安全问题——不安全安全
保存数据——只能保存字符串类型的数据任意类型的数据
语法的不同if(request.Cookies["admin"]!=nullif(session["admin"]!=null

cookie和session的联系

1、cookie对象和session对象一样是用来保存特定的用户相关的数据
2、通过cookie/session的名称来区分不同的cookie/session
3、有生命周期,cookie最大可设置为50年,session默认周期为20分钟,可以手动设置更短或更长的时间
4、使用范围,都是特定用户(如有些软件需要登陆,不一定所有人都会使用到)

后记

学习真的需要积累和总结~

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值