cookie、session和Storage
概念:
- cookie:HTTP响应头的一部分,通过name=value的形式存储,主要用于保存登录信息。在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。 存放数据大小为4K左右 。有个数限制(各浏览器不同),一般不能超过20个。
- webstorage:本地存储,包括localStorage(本地存储)和sessionStorage(会话存储),二者都保存在客户端,不与服务器进行交互通信,存储数据大小一般都是:5MB。
- localStorage:生命周期是永久,这意味着除非用户清除localStorage信息,否则这些信息将永远存在。应用场景:常用于长期登录或判断用户是否已登录。
- sessionStorage:仅在当前会话下有效,关闭页面或浏览器后被清除。应用场景:敏感账号一次性登录。
不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的 localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。这里需要注意的是,页面及标签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。
WebStorage与cookie区别:
- 存储大小:cookie为4KB,而WebStorage是5MB;
- 生命周期:cookie在设定时间内一直有效,localStorage一直有效,sessionStorage浏览器未关闭前有效;
- 服务器通信:cookie在HTTP头中,参与服务器通信,WebStorage不参与服务器通信;
- 安全性:cookie随着HTTP头发送到服务器端,可能会被拦截,安全性相对较低;webStorage相对cookie更高,但有伪造问题;
- 易用性:cookie需要自行封装接口,webStorage直接调用接口;
- 带宽消耗:只要涉及cookie的请求,cookie数据都会在服务器和浏览器间来回传送,消耗网络的带宽;webStorage直接获取存储在本地的数据,节省网络流量,0带宽;
- 网络流量:webStorage不会传送到服务器,存储在本地的数据可以直接获取,也不会像cookie一样每次请求都会传送到服务器,所以减少了客户端和服务器端的交互,节省了网络流量;
- 显示速度:有的数据存储在WebStorage上,再加上浏览器本身的缓存。获取数据时可以从本地获取会比从服务器端获取快得多,所以速度更快。
浏览器本地存储与服务器端存储的区别:
- 数据既可以在浏览器本地存储,也可以在服务器端存储;
- 浏览器可以保存一些数据,需要的时候直接从本地存取,sessionStorage、localStorage和cookie都是由浏览器存储在本地的数据;
- 服务器端也可以保存所有用户的所有数据,但需要的时候浏览器要向服务器请求数据;
- 服务器端可以保存用户的持久数据,如数据库和云存储将用户的大量数据保存在服务器端 ,服务器端也可以保存用户的临时会话数据,服务器端的session机制,如jsp的session对象,数据保存在服务器上;
- 服务器和浏览器之间仅需传递session id即可,服务器根据session id找到对应用户的session对象,会话数据仅在一段时间内有效,这个时间就是server端设置的session有效期;
- 服务器端保存所有的用户的数据,开销较大,而浏览器端保存则把不同用户需要的数据分别保存在用户各自的浏览器中,浏览器端一般只用来存储小数据,而非服务可以存储大数据或小数据服务器存储数据安全一些,浏览器只适合存储一般数据。
cookie和session的区别:
- cookie数据存放在客户的浏览器上,session数据放在服务器上;
- cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session;
- session在一定时间内保存在服务器上,当访问增多,会比较占用服务器的性能,考虑到减轻服务器性能应当使用cookie;
- 单个cookie保存的数*据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie;
- 建议将登录信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中;
- session保存在服务器,客户端不知道其中的信心;cookie保存在客户端,服务器能够知道其中的信息;
- session中保存的是对象,cookie中保存的是字符串;
- session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到,而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。
cookie、session和Storage的更多相关文章
- Cookie/Session/Local Storage/IndexedDB
本文主要总结客户端/浏览器端数据存储的技术. 在客户端或者浏览器端存储,可以快速的访问页面,当前主要有Cookie,Session,Local Storage,IndexedDB四种(WebSQL呗废 ...
- cookie和session,cookie和web storage
一.cookie和session cookie和session的共同之处在于:cookie和session都是用来跟踪浏览器用户身份的会话方式. session指的是访问者从到达某个特定页面到离开为止 ...
- cookie, session, token 是什么 以及相应的安全考量
Cookie cookie 最常见的是用来保存一些账号信息,比如下图里的 记住账号 就是记录到了cookie里面 cookie 更主要的是针对和server通信的,我们知道http 是无状态的,那如果 ...
- Python Web学习笔记之Cookie,Session,Token区别
一.Cookie,Session,Token简介 # 这三者都解决了HTTP协议无状态的问题 session ID or session token is a piece of data that i ...
- 数据存储的两种方式:Cookie 和Web Storage
数据存储的两种方式:Cookie 和Web Storage 1.Cookie Cookie的作用就像你去超市购物时,第一次给你办张购物卡,这个购物卡里存放了一些你的个人信息,下次你再来这个连锁超市时, ...
- 数据存储的两种方式:Cookie 和Web Storage(转)
数据存储的两种方式:Cookie 和Web Storage 数据存储的两种方式:Cookie 和Web Storage 1.Cookie Cookie的作用就像你去超市购物时,第一次给你办张购物卡 ...
- cookie,session,sessionid
cookie,session,sessionid http协议是无状态的,意思是每次请求的状态不会保存.因此,产生了cookie,session之类保存会话状态的机制.1.什么是cookiecooki ...
- Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期
servlet的404错误困扰了两天,各种方法都试过了,翻书逛论坛终于把问题解决了,写此博客来纪念自己的第一个servlet经历. 下面我会将自己的编写第一个servlet的详细过程提供给初学者,大神 ...
- 在IE浏览器中iframe跨域访问cookie/session丢失的解决办法
单点登录需要在需要进入的子系统B中添加一个类,用于接收A系统传过来的参数: @Action(value = "outerLogin", results = { @Result(na ...
- 会话Cookie及session的关系(Cookie & Session)
会话Cookie及session的关系(Cookie & Session) 在通常的使用中,我们只知道session信息是存放在服务器端,而cookie是存放在客户端.但服务器如何使用sess ...
随机推荐
- Git提示“warning: LF will be replaced by CRLF”
感谢原文作者:萌新李同学(李俊德-大连理工大学) 原文链接:https://blog.csdn.net/wq6ylg08/article/details/88761581 问题描述 windows平台 ...
- Java.lang.Math类详解
Math类位于Java.lang包中,包含用于执行基本数学运算的方法!Math类的所有执行方法都是静态方法,可以直接使用类名.方法名调用,如:Math.round() 常用的方法:Math.round ...
- ittun.com的使用方法
[如果这篇文章对你有所作用,请加关注哦!] 步骤一: 进入官网http://ittun.com/ Windows 64位下载http://ittun.com/upload/17.2/ittun_win ...
- Java注解和注解处理器使用方法
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11492274.html 准备材料: 实体类: PrintDemo 注解类: PrintName ...
- python基础语法_python中的布尔类型详解
转自:http://www.cnblogs.com/521yywzyzhc/p/6264885.html 我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是 ...
- 一文说透https中的s是什么?
一.HTTP 与 HTTPS 有哪些区别? 1. HTTP 是超文本传输协议,信息是明文传输,存在安全风险.HTTPS ,是在 TCP 和网络层之间加入了 SSL/TLS 安全协议,也就是安全套接字层 ...
- 从零开始实现一个分布式RPC框架
该rpc框架是一个mini版的dubbo.学习rpc之前,建议先了解NIO,Netty和Dubbo等知识.请移步网络编程 前言:(借用阿里大佬的一段话) 为什么要自己写一个RPC框架,我觉得从个人成长 ...
- Dubbo的前世今生
搜索关注微信公众号"捉虫大师",后端技术分享,架构设计.性能优化.源码阅读.问题排查.踩坑实践. 本文已收录 https://github.com/lkxiaolou/lkxiao ...
- Asp.net core IdentityServer4与传统基于角色的权限系统的集成
写在前面 因为最近在忙别的,好久没水文了 今天来水一篇: 在学习或者做权限系统技术选型的过程中,经常有朋友有这样的疑问 : "IdentityServer4的能不能做到与传统基于角色的权限系 ...
- MYSQL文件复制及备份
周末研究了下mysql的数据结构,记录下: 场景1:当从一台电脑的mysql的data中复制数据库的文件夹到另一台电脑上时会发现 表不存在,函数等也不存在 方法:1.需要将data根目录下的ibdat ...