session、cookie、token的区别
从安全性优先级来说:
1、优先级
Cookie<session<token
2、 安全性
Cookie:
①cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session
②HTTP是一种无状态协议,服务器没有办法单单从网络连接上面知道访问者的身份,为了解决这个问题,就诞生了Cookie
Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie
客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。
session:
① session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie
② 关闭浏览器不会关闭session,它具失效日期,失效后服务器认为客户端停止了活动,并删除session以节省空间
Token:
① 作为身份认证 token安全性比session好,因为每个请求都有签名还能防止监听以及重放攻击
② Oauth token提供的是认证和授权,认证针对用户,授权针对app
③ token的生成一般是采用uuid保证唯一性,当用户登录时为其生成唯一的token,存储一般保存在数据库中。token过期时间采用把token二次保存在cookie或session里面,根据cookie和session的过期时间去维护token的过期时间
开发过程举例:
案例一:
项目中我们的用户数据可能需要和第三方共享,或允许第三方调用我们的API则用token
案例二:
公司内部的网站,自己的App,就可以用cookie、session
一般来说我们可以将登录信息放在session,其他信息保存在cookie
案例三:
观察微信、支付宝登录接口用的就是token
最新文章
- HTML 网页特效CSS大全
- DP专题训练之HDU 2955 Robberies
- 【BZOJ-2251】外星联络 后缀数组 + 暴力
- 035. asp.netWeb用户控件之四通过用户控件实现投票和结果分析
- P92认识对话框
- VMware workstation 的虚拟机中再安装workstation
- Oracle数据库编程:在JDBC中应用Oracle
- Chapter 7 Backup and Recovery 备份和恢复:
- Kafka笔记--参数说明及Demo
- CF Round #355 Div.2
- 献给迷惘的Java架构工程师
- java 获取文件内所有文件名
- java 虚拟机栈
- nginx作为web服务以及nginx.conf详解
- php 常用函数总结
- xcode6 怎样下载ios7模拟器
- 安装torch-opencv
- selenium除错
- Android屏幕适配工具
- pagination分页(支持首页,末页,跳转)