Cookie和Session

Cookie

1.什么是Cookie

cookie它是服务器产生的并且保存到在客户端

cookie的本质是保存在客户端的一小段的文本信息,格式为字典,键值对

cookie的名称是由开发来自定义的

cookie的分类

会话级cookie:保存到内存中的,当浏览器关闭就会自动的失效

持久化cookie:保存到硬盘的,只有它的失效时间到了才回失效

cookie的格式

domain:作用域

{name:value,domain:作用域,path:路径,exprits:时间,size:大小}

cookie 数据传输的原理

客户端和服务器。基于HTTP协议

请求头:cookie

当客户端在第2-N请求服务器的时候, 那么就会通过cookie把信息传输到服务器。

响应头set-cookie

当客户端第一次访问服务器的时候。那么服务器就会通过set-cookie把cookie信息传输到客户端。客户端拿到cookie之后保存

有个致命的缺陷。因为我么cookie保存在客户端,像用户名和密码保存在客户端很不安全

二、Session

当我们的用户第一次登录的时候,在我们的服务器就会生成一个会话的标识,Sessionid,并且保存在服务器的内存当中,默认声明周期是30分钟。然后会话标识 Sessionid 会通过cookie放送给客户端,客户端只需要保存Sessionid就可以了,并且我们的Sessionid一般是通过会话去 cookie去保存和传输。所以就安全多

cookie ,session的共同点 和区别

相同点:都是在服务器产生的,并且都是用于身份验证

不同点:

1、cookie是存储客户端,seeion 存储在服务器的内存。默认是30分钟 ,session的安全性比cookie高,所以重要的数据放到session,而一些次要的放到cookie

2、session保存在服务器的内存,token保存在数据库的。token的好处是比session更加节约服务器的资源。服务器收到token之后直接解密就可以。

1、存储位置不同

cookie的数据信息存放在客户端浏览器上。

session的数据信息存放在服务器上。

2、存储容量不同

单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie。

对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。

3、存储方式不同

cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据。

session中能够存储任何类型的数据,包括且不限于string,integer,list,map等。

4、隐私策略不同

cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie欺骗,所以它是不安全的。

session存储在服务器上,对客户端是透明对,不存在敏感信息泄漏的风险。

5、有效期上不同

开发可以通过设置cookie的属性,达到使cookie长期有效的效果。

session依赖于名为JSESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session不能达到长期有效的效果。

6、服务器压力不同

cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie是很好的选择。

session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值