Cookie、Session和Storage
[TOC]
本文根据网络资料整理
一、Cookie
Cookie定义
数据存储到计算机中,通过浏览器控制添加与删除数据
Cookie的特点
- 不同的浏览器存放的cookie位置不一样,也是不能通用的
- cookie的存储是以域名形式进行区分的
- cookie的数据可以设置名字的.
- 一个域名下存放的cookie的个数是有限制的,不同的浏览器存放的个数不一样
- 每个cookie存放的内容大小也是有限制的,不同的浏览器存放大小不一样。4KB左右
Cookie分类
- Cookie分7中,分别为
sessionCookie、PersistentCookie、secureCookie、superCookie、HtttOnlyCookie、3rd-party cookie和zombie cookie(僵尸cookie) - 参考
Cookie分几种-----简书
Cookie读取与写入
我们通过document.cookie来获取当前网站下的cookie的时候,得到的字符串形式的值,他包含了当前网站下所有的cookie。他会把所有的cookie通过一个分号+空格的形式串联起来
Cookie过期时间
如果我们想长时间存放一个cookie。需要在设置这个cookie的时候同时给他设置一个过期的时间
TIPS:cookie默认是临时存储的,当浏览器关闭进程的时候自动销毁
Cookie库和引用文件
- cookie---MDN
MDN上的定义,用处不大 - cookie在前端中的实践
挺全的讲解 - cookie---npm
一个cookie库 - express中的cookie与session
Cookie一般是在服务端设置的
二、session
缘起
Http是一种无状态的协议
定义
- session保存在数据库、集群、内存和文件(默认)中。
- cookie保存在硬盘、内存中
cookie和session区别
- Cookie客户端,Session服务端
- Cookie是用来保存用户信息的一种机制,也是实现Session的一种方式
- 如果浏览器禁用Cookie,可用通过url传递session_id
- 参考
- Cookie和Session有什么区别---知乎
cookie和webStorage的区别
- cookie与服务端通信,storage不通信
- cookie存放数据4k左右,storage则5M左右
参考
- Cookie与webStorage的区别----简书
如果cookie被篡改怎么办
- 服务器设置一个secret签名
- cookie是铭文传输,因为cookie只放一个sessionid,
而session敏感信息存放在服务端。
参考
Cookie的实现机制和防篡改机制
三、Storage
两种类型
- sessionStorage
sessionStorage---MDN
session临时回话,从页面打开到页面关闭的时间段
窗口的临时存储,页面关闭,本地存储消失 - localStorage
永久存储(可以手动删除数据)
共同点
- 存储量限制 ( 5M )
- 客户端完成,不会请求服务器处理
- sessionStorage数据是不共享、 localStorage共享
不同点
sessionStorage会在回话结束后消失,
localStorage不会。
Storage API
- setItem():
设置数据,key\value类型,类型只能是字符串
可以用获取属性的形式操作(注意类型转换)//键值对 window.sessionStorage.setItem('name',aInput[3].value);复制代码
- getItem():
获取数据,通过key来获取到相应的value(注意类型转换)复制代码
//属性的形式操作 window.localStorage.name=aInput[3].value; window.localStorage[name]=aInput[3].value;复制代码
- removeItem():
删除数据,通过key来删除相应的value复制代码
- clear():
删除全部存储的值复制代码
- key():获取所有的key,可以在不知道有哪些键值的时候使用
存储事件storage
当数据有修改或删除的情况下,就会触发storage事件
- 在对数据进行改变的窗口对象上是不会触发的
例如:同步购物车------cnblogs - 回调函数
window.addEventListener('storage',function(ev){ //当前页面的事件不会触发
参数ev的属性如下:
- Key : 修改或删除的key值,如果调用clear(),key为null
- newValue : 新设置的值,如果调用removeStorage(),key为null
- oldValue : 调用改变前的value值
- storageArea : 当前的storage对象
- url : 触发该脚本变化的文档的url
注:session同窗口才可以
storage应用
- 页面刷新计数器
- 保存用户名或者电话
- vue-storage
保存意外退出未来得及提交的注册信息
优秀的storage库
- store2
store.js 一个非常棒的处理localStorage的轮子,原生localStorage只支持存储字符串类型,轮子进行封装后可以直接存储Array、Object、function、Set等类型
转载于:https://juejin.im/post/59db4e5251882578c70bfd4c
Cookie、Session和Storage相关推荐
- 彻底理解cookie,session,localStorage(附代码)
2019独角兽企业重金招聘Python工程师标准>>> 1. cookie 1.1 什么是cookie cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某 ...
- Cookie Session Token 与 JWT 解析
首先先了解一些关键词 认证.授权与凭证 什么是认证(Authentication)? 通俗地讲就是 验证当前用户的身份是否合法的过程,即你是谁?证明"你是你自己"(比如:你每天上下 ...
- 2、cookie session token详解
cookie session token详解 转自:http://www.cnblogs.com/moyand/ 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, ...
- 基于requests模块的cookie,session和线程池爬取
基于requests模块的cookie,session和线程池爬取 有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三"人人网"个人主页数据)时,如果使用之前req ...
- .net session 有效时间_Python中requests模拟登录的三种方式(携带cookie/session进行请求网站)...
这篇文章主要介绍了python中requests模拟登录的三种方式(携带cookie/session进行请求网站),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋 ...
- C# 系统应用之Cookie\Session基础知识及php读取Cookie\Session
本文主要是毕业设计"个人电脑使用记录清除软件"系列系统应用文章中关于Cookie方面的知识,主要从介绍Cookie的基础知识和PHP关于Cookie\Session两个会话管理机制 ...
- Cookie ,Session
会话技术 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话.会话技术就是记录这次会话中客户端态的状与数据的. 会话技术分为Cookie和Session: Cookie:数据存储在 ...
- 会话Cookie及session的关系(Cookie Session)
会话Cookie及session的关系(Cookie & Session) 在通常的使用中,我们只知道session信息是存放在服务器端,而cookie是存放在客户端.但服务器如何使用sess ...
- node --- [express] cookie/session 机制与 中间件的使用(路由守卫)
说明 源代码 记忆.遗忘回顾 使用 cookie/session 机制,让 客户端/服务器 的访问变得有状态 cookie 与 session 由于 HTTP 协议的无状态性,当一次连接断开后. 服务 ...
- php cookie 字串,php入门(字符串,cookie,session)
php入门(字符串,cookie,session),有需要的朋友可以参考下. 字符串 获取字符串的长度: strlen()函数 获取中文字长echo mb_strlen($str,"UTF8 ...
最新文章
- 精通机器学习的5本免费电子书(5 free e-books for machine learning mastery)
- 设备驱动--中断开关执行的匹配
- AOGNet:基于深度 AND-OR 语法网络的目标识别方法 | PaperDaily #28
- 企业版Java EE正式易主 甲骨文再次放手
- java人种_实在看不出藏族有大量矮黑血统
- Eclipse—如何为Eclipse开发工具中创建的JavaWeb工程创建Servlet
- 1.VC弹出打开文件/保存文件/选择文件对话框
- eas bos 常用代码
- 最近越来越当心,是不是自己真的老了。。。
- java推送微信消息换行_微信公众平台开发教程之文本消息如何换行(第十二课)
- 超越白皮书8:穿云而过的闪电网络
- Python实现邮箱自动群发工资条
- 刷题-洛谷-P1179 数字统计
- 【必读推荐】程序员的职业素养
- Python 环境搭建
- 008-break语句与continue语句的使用,循环嵌套
- 计算机的基本组成 教案反思,《计算机系统组成》教学反思
- 【产品分享】嘉为蓝鲸统一告警中心,系统可用的第一层保障!
- requests库和lxml库爬取彼岸图网的图片
- StackOverflow网友Bert F发帖提问:哪本最具影响力的书,是每个程序员都应该读的?...
热门文章
- python小工具自动审单录凭证_跟着老板工作了二十年,最近来了个新员工然后我被开除了...
- 三分钟掌握Go mod常用与高级操作
- laravel5.4根据数据表生成迁移文件
- array_shift -- 将数组开头的单元移出数组
- 计算机会考补考时间安排,2019-2020学年第二学期初补考考试安排(实时更新)
- 这河里吗?Go 里边空指针还能调用对象方法!
- Go Web编程--应用数据库
- 《go 语言程序设计》读书笔记(六)Goroutine与系统线程的区别
- OAuth2.0授权协议的一个简单解释
- 春晚红包:挺住的百度和崩坏的应用商店