zoukankan      html  css  js  c++  java
  • cookie,session,token的定义及区别

    转自:https://www.cnblogs.com/MaiJiangDou/p/6423678.html

    1、cookie(储存在用户本地终端上的数据)

    服务器生成,发送给浏览器,浏览器保存,下次请求同一网站再发送给服务器。

    2、session(会话)

    a、代表服务器与浏览器的一次会话过程,这个过程是连续的,也可以时断时续的。

    b、cookie中存放着一个sessionID。请求时会发送这个ID。

    c、session因为请求(request对象)而产生。

    d、session是一个容器,可以存放会话过程中的任何对象。

    e、session的创建和使用总在服务端,而浏览器从来都没得到过session对象。

    f、Session 是一种HTTP存储机制,目的是为无状态的HTTP提供的持久机制。

    3、token(“令牌”)

    是用户身份的验证方式,最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名)。

    4、cookie与session

    a、cookie数据存放在客户端上,session数据放在服务器上。

    b、cookie不是很安全,且保存数据有限。

    c、session一定时间内保存在服务器上。当访问增多,占用服务器性能

    5、session与token

    作为身份认证 token安全性比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.

    Session 认证只是简单的把User 信息存储到Session 里,因为SID 的不可预测性,暂且认为是安全的。这是一种认证手段。 而Token ,如果指的是OAuth Token 或类似的机制的话,提供的是 认证 和 授权 ,认证是针对用户,授权是针对App 。其目的是让 某App有权利访问 某用户 的信息。这里的 Token是唯一的。不可以转移到其它 App上,也不可以转到其它 用户 上。 转过来说Session 。Session只提供一种简单的认证,即有此 SID,即认为有此 User的全部权利。是需要严格保密的,这个数据应该只保存在站方,不应该共享给其它网站或者第三方App。 所以简单来说,如果你的用户数据可能需要和第三方共享,或者允许第三方调用 API 接口,用 Token 。如果永远只是自己的网站,自己的 App,用什么就无所谓了。

    我的理解:
    cookie存在浏览器,不安全;
    session存在服务器,可能影响性能;
    token身份认证安全性好,是唯一的。
    若存在第三方,用token,不用session。

  • 相关阅读:
    5、打开界面
    C++模版完全解析
    运维二三事儿
    tcpdump命令使用方法
    putty源码阅读----plink
    nginx--提供一键安装脚本
    vt100控制符
    zabbix---简介
    Dictionary
    装箱、拆箱
  • 原文地址:https://www.cnblogs.com/huanlfu/p/15215721.html
Copyright © 2011-2022 走看看