博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cookie和session的区别
阅读量:5088 次
发布时间:2019-06-13

本文共 1314 字,大约阅读时间需要 4 分钟。

一、Cookie的特点:

1、cookie是一门客户端缓存技术
2、cookie数据由服务器生成,发送给浏览器保存
3、cookie数据的格式:键值对
4、cookie数据过期机制:设置expire值
cookie是一门客户端技术,一般是由服务器生成返回给浏览器客户端来保存的,并且cookie是以键值对的形式保存在浏览器客户端的,每一个cookie都会有名称,值,过期时间...。
cookie有很多使用场景,在项目中比较常见的有:
1、登录记住用户名和密码
2、记录用户浏览记录
  ...
上面应用中大家最熟悉的应该就是记住用户名这个场景了,以京东网站的登录功能为例,当我们登录了一次京东,后面再去登录页面登录的时候,会发现它会帮你回填之前的用户名,这个场景就是通过cookie技术实现的。

二、session的特点:

1、session是一门服务端会话缓存技术。
2、session由服务器端的web容器创建,保存在服务器端。
3、session保存数据:键值对形式
4、session过期:默认30分钟
  session是服务端的会话技术,当用户登录了系统,服务器端的web容器就会创建一个会话,此会话中可以保存登录用户的信息,并且也是以键值对的形式去保存的,现在大部分系统都是使用的session技术来做的鉴权(权限鉴定),即:当用户登录完了才可以访问系统中的一些页面和数据。

  通过fiddler抓包可以发现,login登录接口的响应头里有一个“set-cookie”的头信息,里面就有“JSESSIONID=8AC39619BB5BE*********4337”这个信息,浏览器看到这个响应头就知道要把这个数据写到cookie当中,cookie名称为:“JSESSIONID”,值为:“8AC39619BB5BE*********4337”。这个session会话编号就是服务器返回的。服务器端的这个session会话保存了登录用户的信息。

  登录完成后再访问系统中的任何页面都是有没有问题的,因为后面每次请求都会带上浏览器里cookie里面的这个“JSESSIONID”的值过去。

三、token机制。

app项目为例:
一般app项目都会基于一个token做鉴权。
因为此时客户端不是浏览器,因此就没有cookie这一说了。
当用户登录app时,服务器会响应回来一个token信息(一般都是返回的一串唯一的标识符,比如说uuid或其他)。
服务器端会将登录用户跟token(票据)保存一个映射关系,一般保存在redis或者表里面,服务器端响应回来的token会缓存在手机的本地缓存里,后面手机去访问app的其他页面,就会带着这个token去服务器做验证。
如果通过这个token能够从redis找到登录用户信息,那么就认为你是已经登录了的用户。

三者相同的点:

不论是cookie、session还是token,都可以设置时限,一段时间后,就会失效。当失效之后,再次访问的时候,就需要重新登录了。

转载于:https://www.cnblogs.com/jane4321/p/11148557.html

你可能感兴趣的文章
程序员的数学
查看>>
聚合与组合
查看>>
jQuery如何获得select选中的值?input单选radio选中的值
查看>>
设计模式 之 享元模式
查看>>
如何理解汉诺塔
查看>>
洛谷 P2089 烤鸡【DFS递归/10重枚举】
查看>>
15 FFT及其框图实现
查看>>
Linux基本操作
查看>>
osg ifc ifccolumn
查看>>
C++ STL partial_sort
查看>>
3.0.35 platform 设备资源和数据
查看>>
centos redis 安装过程,解决办法
查看>>
IOS小技巧整理
查看>>
WebDriverExtensionsByC#
查看>>
我眼中的技术地图
查看>>
lc 145. Binary Tree Postorder Traversal
查看>>
sublime 配置java运行环境
查看>>
在centos上开关tomcat
查看>>
重启rabbitmq服务
查看>>
正则表达式(进阶篇)
查看>>