[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库和引用文件
  1. cookie---MDN
    MDN上的定义,用处不大
  2. cookie在前端中的实践
    挺全的讲解
  3. cookie---npm
    一个cookie库
  4. express中的cookie与session
    Cookie一般是在服务端设置的

二、session

缘起

Http是一种无状态的协议

定义
  1. session保存在数据库、集群、内存和文件(默认)中。
  2. cookie保存在硬盘、内存中
cookie和session区别
  1. Cookie客户端,Session服务端
  2. Cookie是用来保存用户信息的一种机制,也是实现Session的一种方式
  3. 如果浏览器禁用Cookie,可用通过url传递session_id
  4. 参考
  • Cookie和Session有什么区别---知乎
cookie和webStorage的区别
  1. cookie与服务端通信,storage不通信
  2. cookie存放数据4k左右,storage则5M左右
    参考
  • Cookie与webStorage的区别----简书
如果cookie被篡改怎么办
  1. 服务器设置一个secret签名
  2. cookie是铭文传输,因为cookie只放一个sessionid,
    而session敏感信息存放在服务端。
    参考
    Cookie的实现机制和防篡改机制

三、Storage

两种类型
  1. sessionStorage
    sessionStorage---MDN
    session临时回话,从页面打开到页面关闭的时间段
    窗口的临时存储,页面关闭,本地存储消失
  2. localStorage
    永久存储(可以手动删除数据)
共同点
  • 存储量限制 ( 5M )
  • 客户端完成,不会请求服务器处理
  • sessionStorage数据是不共享、 localStorage共享
不同点

sessionStorage会在回话结束后消失,
localStorage不会。

Storage API
  1. setItem():
    设置数据,key\value类型,类型只能是字符串
    可以用获取属性的形式操作(注意类型转换)

    //键值对
    window.sessionStorage.setItem('name',aInput[3].value);复制代码
  2. getItem():
     获取数据,通过key来获取到相应的value(注意类型转换)复制代码
    //属性的形式操作
    window.localStorage.name=aInput[3].value;
    window.localStorage[name]=aInput[3].value;复制代码
  3. removeItem():
     删除数据,通过key来删除相应的value复制代码
  4. clear():
     删除全部存储的值复制代码
  5. key():获取所有的key,可以在不知道有哪些键值的时候使用
存储事件storage

当数据有修改或删除的情况下,就会触发storage事件

  1. 在对数据进行改变的窗口对象上是不会触发的
    例如:同步购物车------cnblogs
  2. 回调函数
    window.addEventListener('storage',function(ev){ //当前页面的事件不会触发
    参数ev的属性如下:
  • Key : 修改或删除的key值,如果调用clear(),key为null
  • newValue : 新设置的值,如果调用removeStorage(),key为null
  • oldValue : 调用改变前的value值
  • storageArea : 当前的storage对象
  • url : 触发该脚本变化的文档的url
    注:session同窗口才可以
storage应用
  1. 页面刷新计数器
  2. 保存用户名或者电话
  3. vue-storage
    保存意外退出未来得及提交的注册信息
优秀的storage库
  1. store2
    store.js 一个非常棒的处理localStorage的轮子,原生localStorage只支持存储字符串类型,轮子进行封装后可以直接存储Array、Object、function、Set等类型

转载于:https://juejin.im/post/59db4e5251882578c70bfd4c

Cookie、Session和Storage相关推荐

  1. 彻底理解cookie,session,localStorage(附代码)

    2019独角兽企业重金招聘Python工程师标准>>> 1. cookie 1.1 什么是cookie cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某 ...

  2. Cookie Session Token 与 JWT 解析

    首先先了解一些关键词 认证.授权与凭证 什么是认证(Authentication)? 通俗地讲就是 验证当前用户的身份是否合法的过程,即你是谁?证明"你是你自己"(比如:你每天上下 ...

  3. 2、cookie session token详解

    cookie session token详解 转自:http://www.cnblogs.com/moyand/ 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, ...

  4. 基于requests模块的cookie,session和线程池爬取

    基于requests模块的cookie,session和线程池爬取 有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三"人人网"个人主页数据)时,如果使用之前req ...

  5. .net session 有效时间_Python中requests模拟登录的三种方式(携带cookie/session进行请求网站)...

    这篇文章主要介绍了python中requests模拟登录的三种方式(携带cookie/session进行请求网站),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋 ...

  6. C# 系统应用之Cookie\Session基础知识及php读取Cookie\Session

    本文主要是毕业设计"个人电脑使用记录清除软件"系列系统应用文章中关于Cookie方面的知识,主要从介绍Cookie的基础知识和PHP关于Cookie\Session两个会话管理机制 ...

  7. Cookie ,Session

    会话技术 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话.会话技术就是记录这次会话中客户端态的状与数据的. 会话技术分为Cookie和Session: Cookie:数据存储在 ...

  8. 会话Cookie及session的关系(Cookie Session)

    会话Cookie及session的关系(Cookie & Session) 在通常的使用中,我们只知道session信息是存放在服务器端,而cookie是存放在客户端.但服务器如何使用sess ...

  9. node --- [express] cookie/session 机制与 中间件的使用(路由守卫)

    说明 源代码 记忆.遗忘回顾 使用 cookie/session 机制,让 客户端/服务器 的访问变得有状态 cookie 与 session 由于 HTTP 协议的无状态性,当一次连接断开后. 服务 ...

  10. php cookie 字串,php入门(字符串,cookie,session)

    php入门(字符串,cookie,session),有需要的朋友可以参考下. 字符串 获取字符串的长度: strlen()函数 获取中文字长echo mb_strlen($str,"UTF8 ...

最新文章

  1. 精通机器学习的5本免费电子书(5 free e-books for machine learning mastery)
  2. 设备驱动--中断开关执行的匹配
  3. AOGNet:基于深度 AND-OR 语法网络的目标识别方法 | PaperDaily #28
  4. 企业版Java EE正式易主 甲骨文再次放手
  5. java人种_实在看不出藏族有大量矮黑血统
  6. Eclipse—如何为Eclipse开发工具中创建的JavaWeb工程创建Servlet
  7. 1.VC弹出打开文件/保存文件/选择文件对话框
  8. eas bos 常用代码
  9. 最近越来越当心,是不是自己真的老了。。。
  10. java推送微信消息换行_微信公众平台开发教程之文本消息如何换行(第十二课)
  11. 超越白皮书8:穿云而过的闪电网络
  12. Python实现邮箱自动群发工资条
  13. 刷题-洛谷-P1179 数字统计
  14. 【必读推荐】程序员的职业素养
  15. Python 环境搭建
  16. 008-break语句与continue语句的使用,循环嵌套
  17. 计算机的基本组成 教案反思,《计算机系统组成》教学反思
  18. 【产品分享】嘉为蓝鲸统一告警中心,系统可用的第一层保障!
  19. requests库和lxml库爬取彼岸图网的图片
  20. StackOverflow网友Bert F发帖提问:哪本最具影响力的书,是每个程序员都应该读的?...

热门文章

  1. python小工具自动审单录凭证_跟着老板工作了二十年,最近来了个新员工然后我被开除了...
  2. 三分钟掌握Go mod常用与高级操作
  3. laravel5.4根据数据表生成迁移文件
  4. array_shift -- 将数组开头的单元移出数组
  5. 计算机会考补考时间安排,2019-2020学年第二学期初补考考试安排(实时更新)
  6. 这河里吗?Go 里边空指针还能调用对象方法!
  7. Go Web编程--应用数据库
  8. 《go 语言程序设计》读书笔记(六)Goroutine与系统线程的区别
  9. OAuth2.0授权协议的一个简单解释
  10. 春晚红包:挺住的百度和崩坏的应用商店