网络应用中session和token本质是一样的吗,有什么区别

发布网友

我来回答

2个回答

热心网友

  您好,很高兴回答您的问题。
  两者从单词字面上的意思就有很大区别
  session一般指会话,并不单单指session_id,可以是当前访问用户保存在服务器内存中的任何数据。然后,因为http是断开式的连接,即每次访问完成之后,浏览器与服力器断开连接,所以下次访问的时候,需要通过cookie中保存的session_id找到上一次访问产生的session数据。不同的后端实现的方式有所不同。
  而token一般指翻译成令牌,一般是用于验证表明身份的数据或是别的口令数据。可以用url传参,也可以用post提交,也可以夹在http的header中,就是说token从设计上必须通过get参数或者post参数提交,一般是不允许保存在cookies当中的,容易产生CSRF漏洞。这个就不像session_id那样,基本上你自己做的系统,可以自己按自己的需求定义怎么使用。
  如果您还有什么问题,可以继续追问,我会尽快回复您的问题。希望我的回答对您有所帮助,您的采纳是对我最好的鼓励,谢谢!

热心网友

1.
session的中文翻译是“会话”,当用户打开某个web应用时,便与web服务器产生一次session。服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。
1.
token的意思是“令牌”,是用户身份的验证方式,最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,由token的前几位+盐以哈希算法压缩成一定长的十六进制字符串,可以防止恶意第三方拼接token请求服务器)。还可以把不变的参数也放进token,避免多次查库
token 和session 的区别
session 和 oauth token并不矛盾,作为身份认证 token安全性比session好,因为每个请求都有签名还能防止监听以及重放攻击,而session就必须靠链路层来保障通讯安全了。如上所说,如果你需要实现有状态的会话,仍然可以增加session来在服务器端保存一些状态
app通常用restful api跟server打交道。rest是stateless的,也就是app不需要像browser那样用cookie来保存session,因此用session token来标示自己就够了,session/state由api server的逻辑处理。 如果你的后端不是stateless的rest api, 那么你可能需要在app里保存session.可以在app里嵌入webkit,用一个隐藏的browser来管理cookie session.

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com