我在学习Nginx的时候认识的cookie和session,有什么不同?

cookie是一种面向客户端存储机制

session是一种面向编程面向服务器的存储

首先要知道,他们两个机制不是两连的,他们都是分开的机制,不是使用cookic就必须有session,这是初学者的一个误区。

大家接触过http协议相关服务的应该会有更深入的理解

  1. 什么是cookie?

cookie它的核心功能就是存储,当我们浏览器去访问服务器的时候,会产生一定cookie来存储到本地,当我们再次去访问服务器的时候,就会带上我们的请求网站和cookie一同去发送给我们的服务器,并且在返回请求的时候,会告诉浏览器增加或者删除某些cookie内容

这里我们需要注意cookic的几点特性:

1.安全问题:浏览器存储cookie时是使用的明文来进行保存的,如果我们保存的一些重要信息,需要格外注意。
2.cookie的失效时间:如果没有设置Cookie失效日期,它们仅保存到关闭浏览器程序为止,如果将Cookie对象的Expires属性设置为Minvalue,则表示Cookie永远不会过期.
3.cookie的存储空间:Cookie存储的数据量很受限制,大多数浏览器支持最大容量为4K,因此不要用来保存数据集及其他大量数据.
  1. 什么是session?

session呢是一种基于服务器和客户端都要存储的一个唯一标志,也叫做session_id,当我们使用session机制时,会将信息来保存到服务器端同时也会生成一个session_id,也会在浏览器中生成一个session_id,它的作用时当浏览器再次访问服务器时会将客户端session_id发往服务器端,然后进行比对,这样浏览器就对拿到相对应的信息

专业来说就是我们客户端app是如何实现session的,这里一般没有cookie。app用户登陆后,服务器返回一个唯一ID,app储存起来,在每次请求服务器的时候,都带上这个ID,这样服务器接收到,就知道你是谁,然后做一些逻辑处理。

在我们生活中的例子:

比如我们在访问京东网页时,这时我们要登录才可以购买东西,我现在输入账号密码登录到京东后,此时我们的浏览器就会保存缓存和唯一标识符,服务器端也会保存缓存信息,叫做session,但是目前互联网人流较大,网络运营商都会采用多台服务器来进行做负载均衡,所以需要一个唯一标识符来作为标记,这样当一台具有session_id的浏览器来可以对应上它所保存的session缓存信息,这个唯一标识符叫做session-ID,这个就可以实现缓存功

  1. 相同点

1.cookie和session都是用来跟踪浏览器用户身份的会话方式。

2.都是为了缓存存储来提高网站速率

  1. 不同点(重点 面试中会遇到)

存储:cookie数据保存在客户端,session数据保存在服务端。

安全:cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

服务器性能:session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。

数据存储空间:单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

信息重要程度:可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

征服bug

curry.30

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

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

打赏作者

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

抵扣说明:

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

余额充值