http是无状态的协议,所以要维持应用的会话形式,就需要加入以下几种机制,来进行会话跟踪,识别用户身份(当同一用户进行多次操作,不用反复请求建立新的连接,从而节省服务器资源和处理速度)

  生成位置 存储方式 验证原理 特点

cookie

(记录用户身份)

服务器

在客户端浏览器内以文件形式存储(键值对name=value)

常见包括name(cookie名称)、path(对于服务器其他页面的可用性)、domain(顾名思义,同域内的其他服务器共享可用性)、secure(该属性若未出现,这意味着cookie在网络中未加密传输;secure属性并不能对Cookie内容加密,因而不能保证绝对的安全性。如果需要高安全性,需要在程序中对Cookie内容加密、解密,以防泄密。)

1.用户通过用户名和密码 发送请求

2.服务器生成cookie(服务器针对客户端状态的一小段文本信息)并在响应头中返回

3.在之后的请求中携带cookie,服务器进行检查(如前所示,这些信息都可被篡改和截取)

1.安全性较差,攻击者可截取cookie进行目标权限的操作

2.需要浏览器支持

3.不可跨域

session

(记录用户状态)

服务器

服务器 redis数据库、file(php)、内存(tomcat)中。存储形式为hash(key-field-value);包括sessionid(为随机生成字符串)该id会写入cookie中发至客户端。

同时Session需要使用Cookie作为识别标志,因为Session不能依据HTTP连接来判断是否为同一客户

1.用户通过用户名和密码 发送请求

2.服务器生成session(包括sessionid、sessionid对应的key值)存储在服务器中,之后发送cookie(值为sessionid)在响应头中返回

3.在之后的请求中携带cookie(sessionid),服务器进行检查(根据sessionid来查找目标session,比对是否一致)

拓展性较差(若服务器存在负载均衡,session只存在了其中某台)
token 服务器

客户端、服务器(只保存未到期却注销的token,以便下次收到使用这个token时判其无效)

一般包括uid(用户唯一的身份表示)、time(时间戳)、sign(签名、密钥等)、URL(请求的路径)

1.用户通过用户名和密码 发送请求

2.服务器进行验证(用户合法性)

3.服务器签发一个签名的token(生成过程可参考对称加密)给客户端

4.客户端存储并在每次发送请求携带该token

5.服务器通过特定的加密算法对token进行过滤选择(比如HMAC)

6.校验通过返回增删改查数据;校验未通过返回错误码

1.无状态、可拓展(因为token并)

2.相对安全(可防止CSRF攻击)

3.可拓展性强(可分享权限给第三方应用)

4.多平台跨域(完全由应用管理)

5.基于标准化

假设一个场景,有一栋大楼有门禁。

cookie机制:只要你带通行证不管你是谁都可以进来,只认通信证,cookie在这里是通行证。

session机制:要报你的门牌号户主姓名电话号码,大楼门卫在信息表里找到对应的就会放行。session在这里是信息表里的门牌号户主姓名电话号码。

token机制:检验通行证,同时需要对暗号“天王盖地虎”---“宝塔镇河妖”,暗号错一个字都不行。token在这里就是通行证和暗号。

如有纰漏望不吝赐教!

session、cookie和taken的区别的更多相关文章

  1. POPTEST老李分享session,cookie的安全性以及区别 1

    POPTEST老李分享session,cookie的安全性以及区别   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程 ...

  2. session,cookie,sessionStorage,localStorage的区别及应用场景

    session,cookie,sessionStorage,localStorage的区别及应用场景 浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟 ...

  3. 缓存session,cookie,sessionStorage,localStorage的区别

    https://www.cnblogs.com/cencenyue/p/7604651.html(copy) 浅谈session,cookie,sessionStorage,localStorage的 ...

  4. Asp.net 服务器Application,Session,Cookie,ViewState和Cache区别

    2.8 Context 的使用Context 对象包含与当前页面相关的信息,提供对整个上下文的访问,包括请求.响应.以及上文中的Session 和Application 等信息.可以使用此对象在网页之 ...

  5. Application,Session,Cookie,ViewState和Cache区别

    在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等.下面分别介绍它们的用法和区别. 方法 信息量大小 作用域和保 ...

  6. 浅谈session,cookie,sessionStorage,localStorage的区别及应用场景

    浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. 一.cookie和session cookie和session都是用来跟踪浏览器 ...

  7. session,cookie,sessionStorage,localStorage的区别

    浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. 一.cookie和session cookie和session都是用来跟踪浏览器 ...

  8. [转] 浅谈session,cookie,sessionStorage,localStorage的区别及应用场景

    浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. 一.cookie和session cookie和session都是用来跟踪浏览器 ...

  9. 彻底弄清楚session,cookie,sessionStorage,localStorage的区别及应用场景(面试向)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_94 客户端状态保持是一个老生常谈的问题了,归根结底追踪浏览器的用户身份及其相关数据无非就是以下四种方式:session,cooki ...

  10. POPTEST老李分享session,cookie的安全性以及区别 3

    如何查看服务器端输送到我们电脑中的这些Cookie信息:      点开IE浏览器或其他浏览器,在菜单栏中有工具选项,点开有InterNet选项:          Cookie名称.来源.文件格式( ...

随机推荐

  1. node 环境下简单web服务器搭建代码

    零.前置 已经安装 node 环境. 一.代码片段 var http = require('http'); var path = require('path'); var fs = require(' ...

  2. Jquery中$(document).ready() 和 JavaScript中的window.onload方法 比较

    Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的.   1.执行时间 win ...

  3. Mysql的分页查询语句的性能分析

    MySql分页sql语句,如果和MSSQL的TOP语法相比,那么MySQL的LIMIT语法要显得优雅了许多.使用它来分页是再自然不过的事情了. 1.1最基本的分页方式: 在中小数据量的情况下,这样的S ...

  4. c中结构体边界对齐

    原则1.普通数据成员对齐规则:第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储). 原则2 ...

  5. 吴裕雄--天生自然KITTEN编程:躲迷藏

  6. 最新中文版虚拟机VMware Workstation隆重上市

    vmware虚拟机 在虚拟机软件中VMware Workstation算是一款非常强大较稳定的软件了,今天 VMware Workstation 10.0正式发布了,最让人欣喜的是该版本终于有了简体中 ...

  7. Linux下运行命令出现is not in the sudoers file的问题

    原因: 用户没有加入到sudo的配置文件里. 解决方法:  1.切换到root用户,运行visudo命令:  2.找到root ALL=(ALL) ALL,在下面添加一行 xxx  ALL=(ALL) ...

  8. 张益肇:AI 医疗,微软有哪些布局?

    编者按:近几年来,医疗和人工智能碰撞出了相当多的火花,大量资金短期投入到医疗领域当中.然而在微软亚洲研究院副院长张益肇博士看来,人工智能医疗是一场持久战,大家一定要沉下心多调研.多思考.多学习. 人工 ...

  9. C++扬帆远航——4(百钱百鸡)

    /* * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:baiji.cpp * 作者:常轩 * 完成日期:2016年3月 ...

  10. 小程序在ios10.2系统上兼容

    1.  定位元素在ios10.2系统上出现样式问题??? 没错,就是在测试在侧道ios10.2系统时发现了样式错误的问题,比如一个Swiper中,最后一个展示有问题. 这是啥原因❓❓❓❓❓❓ 大写的问 ...