首页 > 其他分享 >cookie和session区别

cookie和session区别

时间:2023-07-05 20:22:06浏览次数:33  
标签:存储 生命周期 区别 不同 session cookie 客户端

什么是Session?

服务器会给每个用户创建一个Session对象,用来存储特定用户会话所需要的属性及配置信息。
session代表的是一次对话,当浏览器第一次访问服务器时,服务会创建一个session对象,
它携带着用户的信息(如登录信息),用户可以在此网站下的所有web页跳转。当会话过期
或被放弃,服务器才会终止该会话。

不同浏览器访问同一网址时(例如知乎),即使操作者是同一人,但知乎仍会创建两个session
对象,相当于模拟两个客户端。

session与cookie的主要区别在于,cookie主要解决http请求没有状态的问题,且通过设
置cookie来进行身份验证,但值都是明文;而session相当于给cookie做了个加密处理,
比cookie更安全。

 

cookie和session区别

cookie与session区别有: 1、对象不同; 2、存储数据大小不同; 3、生命周期不同; 4、存储位置不同; 5、数据类型不同; 6、安全性不同。其中,定义不同是指cookie是针对每个网站的信息,每个网站只能对应一个,而session是针对每个用户的,只有客户端才能访问。

1、对象不同

cookie:是针对每个网站的信息,每个网站只能对应一个,其他网站无法访问,这个文件保存在客户端,每次您拨打相应网站,浏览器都会查找该网站的 cookies,如果有,则会将该文件发送出去。cookies文件的内容大致上包括了诸如用户名、密码、设置等信息。 session:是针对每个用户的,只有客户端才能访问,程序为该客户添加一个 session。session中主要保存用户的登录信息、操作信息等等。此 session将在用户访问结束后自动消失(如果也是超时)。

2、存储数据大小不同

cookie:一个 cookie存储的数据不超过3K。 session:session存储在服务器上可以任意存储数据。当 session存储数据太多时,服务器可选择进行清理。

3、生命周期不同

cookie:cookie的生命周期当浏览器关闭的时候就消亡了,cookie的生命周期是累计的,从创建时就开始计时,30min后cookie生命周期结束。 session:session的生命周期是间隔的,从创建时开始计时如在30min内没有访问session,那么session生命周期就被销毁。

4、存储位置不同

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

5、数据类型不同

两者都是key-value结构,但针对value的类型是有差异的。 cookie:value只能是字符串类型。 session:value是object类型。

6、安全性不同

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

标签:存储,生命周期,区别,不同,session,cookie,客户端
From: https://www.cnblogs.com/nliu/p/17529699.html

相关文章

  • java后端设置session
    session可以用于请求后端数据共享privatestaticvoidflushSession(HttpServletRequestrequest,UserInfoDOuserInfoDO){StringshortName=userInfo.getShortName();StringempId=userInfoDO.getEmpId();Map<String,Object>principalAttri......
  • 微服务架构与单体架构的区别
    微服务架构和单体架构是两种不同的软件架构方式。单体架构是一种传统的软件架构,它将所有的功能模块打包到一个独立的应用程序中。在单体架构中,所有的代码、业务逻辑、数据库模型等都在同一个应用中。单体架构的优点是开发速度快、易于部署和维护,但当应用程序变得越来越复杂时,会......
  • C语言中if(a);if(!a);if(a!=0);if(a==0)有什么区别?
    if(a):如果a为非0数字或字符那么就为真,if条件成立,反之不成立。if(!a):如果!a为真,也就是a为0时,if条件成立,反之不成立。if(a!=0):如果a不等于0,则使得if条件成立,反之不成立。等价于if(a)。if(a==0):如果a等于0,则使得if条件成立,反之不成立。等价于if(!a)。......
  • mysql中count(*)和found_rows()的区别
    count(*)和found_rows()都可以用来求查询记录的数量而count(*)往往单独使用,found_rows()却可以跟上前面一个查询,即select*fromtablelimit10;selectfound_rows();这样的总共可分为几个区别:1.count(*)查询的无论是否为空,都会计数,而found_rows()却不是......
  • 以太网温湿度传感器RJ45信号和485信号输出的温湿度传感器区别
    #RS485信号输出的温湿度传感器和RJ45信号输出的温湿度传感器区别分析温湿度传感器是一种用于测量环境中温度和湿度的设备,可以应用于各种领域,如农业、工业、建筑等。在市场上,有两种常见类型的温湿度传感器:RS485信号输出的和RJ45信号输出的。本文将对这两种类型进行区别分析。##......
  • __main和主函数main()区别++++修改主函数名称的方法
    一、__main和main()之间的关系startup__ec618.s启动文件里面的Reset_Handler: 调用过程: stm32在启动后先进入重启中断函数Reset_Handler,其中会先后调用SystemInit和__main函数,__main函数属于c库函数,其内部依次进行三步工作,即先初始化rw段,然后初始化zi段,最后调用另一......
  • bounding box和anchor box的区别
    Boundingbox(边界框)和Anchorbox(锚框)是目标检测中两个不同的概念。Boundingbox(边界框)是用来描述目标在图像中位置和范围的矩形框。它由矩形框的左上角和右下角坐标定义,可以用来标记和定位目标物体。在目标检测任务中,模型通过预测目标物体的边界框来实现目标检测和定位。Anchor......
  • 60.C++中新增了string,它与C语言中的 char *有什么区别吗?它是如何实现的?
    60.C++中新增了string,它与C语言中的char*有什么区别吗?它是如何实现的?1.实现方式:string是一种抽象类,它的实现由std::string和char*转换而来。在实现上,std::string内部通常会使用动态数组来存储字符串,可以动态地分配内存。同时,std::string还可能使用一些优化技术,如内部缓存和......
  • influxdb 中得 fields 与 tag 区别总结
    本位为博主原创,转载请注明出处:1.Field与Tag说明在InfluxDB表结构中,field和tag是用于存储数据的两种不同类型。Field(字段):Field用于存储实际的数值数据,例如温度、湿度等测量值。Field是可变的,可以随时间的推移而改变其值。Field的值可以进行聚合计算,例如......
  • 定阻喇叭与定压喇叭区别
    定阻喇叭与定压喇叭区别2014-04-1610:01  狂师 阅读(10643) 评论(0)  编辑  收藏  举报 定压功放是为了使传输距离增大而设计的一种功放,主要用在经共广播系统中,如学校,工厂以及其他公共场所的广播,都是以定压的方式来传输的.其输出方式有100V70V,输出......