Cookie、session、token、sessionStorage、localStorage

Cookie  

cookie,指的就是浏览器里面存储的一种数据。

由服务器生成---->发送给浏览器,浏览器把cookie以kv形式保存起来,

下一次请求同一网站时浏览器会把该cookie自动携带------>发送给服务器。

cookie不会占据太多磁盘空间,所以每个域的cookie数量是有限的。

服务端用session去管理cookie:

1、存储在服务端:通过cookie存储一个session_id,具体的数据是保存在服务器端session中。请求的时候,会把该session_id携带上来,服务器根据session_id在session库中获取用户的session数据。专业术语叫做serverside session。

2、存储在客户端:将session数据加密,然后存储在cookie中。专业术语叫做clientside session。flask采用的就是这种方式。

有效期:cookie默认的有效期是浏览器关闭之前,但是可以通过cookie提供的方法max-age来设置(在服务端),单位是s,过了有效期会被删除。

作用域:该页面和该页面同级目录或者子目录的其它web页面可见。通过path和domain属性来配置。可以将页面以隐藏<iframe>的形式加载进来,随后就可以读取了。

子域之间如果要跨域共享cookie,如:B.A.com想访问C.A.com域下的cookie,需要设置domain为主域.A.com。

检查:检查浏览器是否启用cookie,判断navigator.cookieEnabled是否为true。

修改:需要使用相同的名字、路径、域,然后重新设置cookie的值。

删除:需要使用相同的名字、路径、域,指定一个非空值,并将max-age设置为0。

Session 

session,存储在服务器,服务器要知道当前发请求给自己的是谁,为了做这种区分,服务器就要给每个客户端分配不同的“身份标识”,然后客户端每次向服务器发请求的时候,都带上这个“身份标识”,服务器就知道这个请求来自于谁了。客户端怎么保存这个“身份标识”,可以有很多种方式,对于浏览器客户端,大家都默认采用cookie 的方式。

服务器使用session把用户的信息保存在服务器上,Session的默认失效时间是30分钟,从不活动开始计时。可以通过提供的方法设置。

session存储方式相对cookie来说更安全。

session有一个缺陷:如果web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候session会丢失。


Token 

就是对数据做签名。 用某个特定的算法 + 一个密钥=签名,  把这个签名和数据一起作为token 。

tokens

是多用户下处理认证的最佳方式:

以下几点特性会让你在程序中使用基于Token的身份验证

1.无状态、可扩展(负载均衡器能够将用户信息从一个服务传到其他服务器上)

2.支持移动设备(CORS<跨域资源共享>)

3.跨程序调用(栗子:能够创建与其它程序共享权限的程序,授权给第三方应用程序)

4.安全(防止防止CSRF<跨站请求伪造>)


基于服务器验证方式暴露的一些问题:

1.Seesion,内存:认证用户发起请求时,服务器需要去创建一个记录来存储信息。当越来越多的用户发请求时,内存的开销也会不断增加。

2.可扩展性:在服务端的内存中使用Seesion存储登录信息,伴随而来的是可扩展性问题。

3.CORS(跨域资源共享):当让数据跨平台使用时,跨域资源的共享是一个问题,使用Ajax抓取另一个域的资源,会出现禁止请求的情况。

4.CSRF(跨站请求伪造):用户在访问银行网站时,他们很容易受到跨站请求伪造的攻击,并且能够被利用其访问其他的网站。


基于Token的身份验证的过程如下:

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

2、程序验证。

3、程序返回一个签名的token 给客户端。

4、客户端储存token,

5、客户端每次发送请求都携带Token到服务器端。

6、服务器端采用filter过滤器校验,校验成功则返回请求数据,校验失败则返回错误码。


实现思路:


token是有时效的,一段时间之后用户需要重新验证。我们也不一定需要等到token自动失效,token有撤回的操作。

浏览器的缓存方式 :


           名称                      生命周期          数据大小          与服务器通信                     用途

cookie      由服务器生成可设置失效时间     4KB           每次会携带在HTTP头中   存储过多会带来性能问题
                                                                                                                               标识用户身份

sessionStorage      关闭页面或者浏览器     5MB          仅在客户端保存                 浏览器缓存数据
                               后被清除                                        不参与服务端通信     

localStorage          手动清除                       5MB           仅在客户端保存               浏览器缓存数据
                              否则永久有效                                   不参与服务端通信

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容