锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / 网站前端开发 / Session、cookie和token的区别及联系
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

Session、cookie和token的区别及联系


三个的技术都和客户身份有关系,身份和数据与处理流程关系密切,这也是前端和后端衔接必须掌握的点。


Cookie是一种客户端回话技术,将数据保存在客户端。细心的用户应该会注意到,在逛浏览器设置的时候,浏览器上就有与cookie相关的设置选项,下边是小编浏览器与cookie相关的设置

Cookie设置

通过这些设置,我们可以选择让我们的浏览器是否接受我们浏览的网站给我们发送的cookie,cookie的生命周期大致如下所示

  1. 首先当我们浏览一个网站的时候,对应的网站服务器根据业务的需求给我们的浏览器发送一个cookie,服务器首先创建cookie对象,绑定数据,new Cookie(string name,String Value),然后发送cookie对象,response.addCookie(Cookie cookie)。
  2. 当我们的浏览器设置可以接受cookie的情况下,这个cookie就会保存在我们浏览器的相关文件中,默认情况下,我们的浏览器一但关闭cookie数据就会被销毁,但服务器可以通过setMaxAge(int seconds)来设置cookie的存活时间。
  3. 我们的浏览器接受到这个cookie后,在存活时间内,当我们再次访问这个网站的时候,我们的这个cookie信息就会存放在我们的请求头cookie中,而服务器可以通过Cookie[] request.getCookies()方法来获取我们的cookie,进而识别我们用户的身份。

 

Cookie一般用于存储少量的不太敏感的数据,在不登录的情况下,完成服务器对客户端的身份识别。

Session是一种服务端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器的对象中,session的生命周期大致如下

  1. 首先需要获取httpsession对象,HttpSession session=request.getSession();这样服务器就会创建一个session对象,并且存入服务器session集合中以sessionId为标识符,但这个时候我想大家跟小编我一样都有一个疑问,服务器中session集合中有这么多session,服务器如何知道其中哪一个是存储自己信息的那个呢。原来创建session的同时,服务器还会将与这个session对应的标识符sessionId以cookie的形式发送给用户,这样当同一个用户再次访问服务器,服务器就能找到与用户对应的那个session对象。
  2. Session创建之后,默认的存活时间是30分钟,但是当服务器关闭的时候,session会被直接销毁,session对象还可以调用invalidate()方法直接销毁session。

通过讲解,我们能够了解到cookie主要使我们服务器能够识别用户,而session能够保存用户在我们这个服务器上的浏览信息。

当用户登录网站的时候,一般需要注册用户名、密码等信息,这些信息一般都是存储在数据库中,然后当用户再次登录的时候,我们的服务器就查询数据库中的相关数据来识别用户。但是这样的话会导致我们的服务器需要频繁的去操作数据库,同时用户也不希望每次访问网站都要输入用户名和密码,在这样的前提下,token应运而生。

Token是服务器生成的一串字符串,当用户登录一次后,服务器就将生成的token返回给客户端,下次用户登录我们的服务器,只需带上这个就可以了,无需再次输入用户名和密码。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州市金水区郑州大学北校区院(文化路97号院)内