Cookie、session和localStorage、以及sessionStorage

https://blog.csdn.net/u014753892/article/details/52821268

一、Cookie、session和localStorage的区别 
cookie的内容主要包括:名字、值、过期时间、路径和域。路径与域一起构成cookie的作用范围。若不设置时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就会消失。这种生命期为浏览器会话期的cookie被称为会话cookie。 
会话cookie一般不存储在硬盘而是保存在内存里,当然这个行为并不是规范规定的。若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再打开浏览器这些cookie仍然有效直到超过设定的过期时间。对于保存在内存里的cookie,不同的浏览器有不同的处理方式session机制。 
当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建一个),如果客户端请求不包含session id,则为客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。

二、cookie和session的区别
1、cookie数据存放在客户的浏览器上,session数据放在服务器上 
2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session 
3、session会在一定时间内保存在服务器上,当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie 
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie 
5、建议将登录信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中 
6、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息 
7、session中保存的是对象,cookie中保存的是字符串 
8、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到,而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。 
9、cookie:是服务端向客户端写入的小的片段信息。cookie信息保存在服务器缓存区,不会在客户端显现。当你第一次登陆一个网站,服务器向你的机器写得片段信息。你可以在Internet选项中找到存放cookie的文件夹。如果不删除,cookie就一直在这个文件夹中。 
10、session需要借助cookie才能正常工作。如果客户端完全禁止cookie,session将失效。 但是如果服务器端启用了url编码,也就是用 URLEncoder.encode()把所有的url编码了,则会在url后面出现如下类似的东西 index.jsp:jsessionid=fdsaffjdlks;jaf;lkdjsf 服务器通过这个进行session的判断. 
11.cookie支持跨域名访问,例如将domain属性设置为“.biaodianfu.com”,则以“.biaodianfu.com”为后缀的一切域名均能够访问该Cookie。跨域名Cookie如今被普遍用在网络中,例如Google、Baidu、Sina等,而Session则不会支持跨域名访问。Session仅在他所在的域名内有效。仅运用Cookie或者仅运用Session可能完成不了理想的效果。这时应该尝试一下同时运用Cookie与Session。Cookie与Session的搭配运用在实践项目中会完成很多意想不到的效果。

三、web Storage和Cookie的区别 
Web Storage的概念和cookie相似,区别是它是为了更大容量存储设计的,cookie的大小是受限的,并且每次请求一个新的页面的时候cookie都会被发送过去,这样无形中浪费了带宽,另外cookie还需要指定作用域,不可跨域调用。 
除此之外,web storage拥有setItem,getItem,removeItem,clear等方法,不像cookie需要前端开发者自己封装setCookie,getCookie。 
但是cookie也是不可或缺的,cookie的作用是与服务器进行交互,作为http规范的一部分而存在的,而web Storage仅仅是为了在本地“存储”数据而生 
sessionStorage、localStorage、cookie都是在浏览器端存储的数据,

其中sessionStorage的概念很特别,引入了一个“浏览器窗口”的概念,sessionStorage是在同源的同窗口中,始终存在的数据,也就是说只要这个浏览器窗口没有关闭,即使刷新页面或进入同源另一个页面,数据仍然存在,关闭窗口后,sessionStorage就会被销毁,同时“独立”打开的不同窗口,即使是同一页面,sessionStorage对象也是不同的

Web Storage带来的好处: 
1、减少网络流量:一旦数据保存在本地之后,就可以避免再向服务器请求数据,因此减少不必要的数据请求,减少数据在浏览器和服务器间不必要的来回传递

2、快速显示数据:性能好,从本地读数据比从服务器上快得多,本地数据可以及时获得,加上网页本身也可以有缓存,因此整个页面和数据都在本地的话,可以立即显示 

3、临时存储:很多时候数据只需要在用户浏览一组页面期间使用,关闭窗口后数据就可以丢弃了,这种情况使用sessionStorage非常方便

四、浏览器本地存储与服务器端存储的区别 
其实数据既可以在浏览器本地存储,也可以在服务器端存储 
浏览器可以保存一些数据,需要的时候直接从本地存取,sessionStorage、localStorage和cookie都是由浏览器存储在本地的数据 
服务器端也可以保存所有用户的所有数据,但需要的时候浏览器要向服务器请求数据。 
1、服务器端可以保存用户的持久数据,如数据库和云存储将用户的大量数据保存在服务器端 
2、服务器端也可以保存用户的临时会话数据,服务器端的session机制,如jsp的session对象,数据保存在服务器上,

实际上,服务器和浏览器之间仅需传递session id即可,服务器根据session id找到对应用户的session对象,会话数据仅在一段时间内有效,这个时间就是server端设置的session有效期

服务器端保存所有的用户的数据,所以服务器端的开销较大,而浏览器端保存则把不同用户需要的数据分别保存在用户各自的浏览器中,浏览器端一般只用来存储小数据,而非服务可以存储大数据或小数据服务器存储数据安全一些,浏览器只适合存储一般数据

五、sessionStorage、localStorage和cookie的区别 
共同点:都是保存在浏览器端、且同源的 
区别: 
1、cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递,而sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下 
2、存储大小限制也不同,cookie数据不能超过4K,同时因为每次http请求都会携带cookie、所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大 
3、数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭之前有效;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie:只在设置的cookie过期时间之前有效,即使窗口关闭或浏览器关闭 
4、作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localstorage在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的 
5、web Storage支持事件通知机制,可以将数据更新的通知发送给监听者 
6、web Storage的api接口使用更方便

六、sessionStorage与页面js数据对象的区别 
页面中一般的js对象的生存期仅在当前页面有效,因此刷新页面或转到另一页面这样的重新加载页面的情况,数据就不存在了 
而sessionStorage只要同源的同窗口中,刷新页面或进入同源的不同页面,数据始终存在,也就是说只要浏览器不关闭,数据仍然存在

原文地址:https://www.cnblogs.com/slightFly/p/12262234.html

时间: 2024-11-06 07:11:29

Cookie、session和localStorage、以及sessionStorage的相关文章

cookie、session、localStorage、sessionStorage区别

cookie.session 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. 本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session. cookie 1.1  Cookie机制 在程序中,会话跟踪是很重要的事情.理论上,一个用户的所有请求操作都应该属于同一个会话

cookie、session、localStorage、sessionStorage

(1)cookie 是一种早期的客户端存储机制.适合存储少量文本数据(部分浏览器任然对单个cookie有4KB限制).不仅如此,任何以cookie形式存储的数据,不论服务器端是否需要,每一次HTTP请求都会把这些数据传输到服务器. Cookie默认的有效期很短暂,只能维持在web浏览器的会话期间,一旦用户关闭浏览器,数据丢失.Cookie的作用域并不局限在浏览器的单个窗口中,而是在整个浏览器进程,与有效期一致.Cookie的作用域是通过文档源和文档路径确定的(domain.path),来自同一个

cookie、session、localStorage、sessionStorage的区别

cookie的机制 cookie是存储在用户本地终端上的数据.有时也用cookies,指某些网站为了辨别用户身份,进行session跟踪而存储在本地终端上的数据,通常经过加密. Cookie是服务器发给客户端的特殊信息,cookie是以文本的方式保存在客户端,每次请求一个新的页面的时候cookie都会被发送过去. cookie的内容主要包括:名字.值.过期时间.路径和域.路径与域一起构成cookie的作用范围.若不设置时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cook

cookie,session以及localStorage,sessionStorage的区别

1. cookie和session 浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. cookie和session都是用来跟踪浏览器用户身份的会话方式. a.保持状态:cookie保存在浏览器端,session保存在服务器端. b.使用方式: cookie机制:如果不在浏览器中设置过期事件,cookie被保存在内存中,生命周期随浏览器的关闭而结束,这种cookie简称为会话cookie.如果在浏览器中设置了cookie的过期事

119cookie、session、localStorage、sessionStorage之不同

1.cookie (1)http是一种无状态的协议,服务器不能通过它区分向它发出请求的不同客户: (2)cookie可以在前后端进行用户的身份认证,标记用户. (3)服务端的解决办法是:向客户端种植cookie,并在服务端通过session去管理cookie.当需要记住用户时,比如说登录,在服务端会设置一个响应头Set-Cookie,返回给客户端,例如:Set-Cookie:SESSIONID=12345678:客户端接收到这个响应后,此后发送的每一个请求浏览器都会自动带上Cookie请求头,对

Session、LocalStorage、SessionStorage、Cache-Ctrol比较

1.Session Session是什么? 服务器通过 Set-Cookie给用户一个sessionIdsessionId对应 服务器 内的一小块内存每次用户访问服务器的时候,服务器就听过SessionId去读取对应的session从而知道用户的信息 sessionId的篡改就很难了,因为用户得到的只是一个随机数而已 session其实就是一块内存 为什么要使用Session? 我们在登录成功之后,后端会将用户信息存入到数据库,然后在回应里面会写入一个字段:"Set-Cookie:'这里是用户名

Cookie、session和localStorage、以及sessionStorage之间的区别

一.Cookie.session和localStorage的区别 cookie的内容主要包括:名字.值.过期时间.路径和域.路径与域一起构成cookie的作用范围.若不设置时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就会消失.这种生命期为浏览器会话期的cookie被称为会话cookie. 会话cookie一般不存储在硬盘而是保存在内存里,当然这个行为并不是规范规定的.若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再打开浏览器这些cookie仍

Cookie, LocalStorage 与 SessionStorage说明

 一.Cookie    Cookie 大小限制为4KB左右,不适合大量数据的存储.因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高.它的主要用途有保存登录信息,比如你登录某个网站市场可以看到"记住密码",这通常就是通过在 Cookie 中存入一段辨别用户身份的数据来实现的. HttpCookie cookie = new HttpCookie("MyCookieName", "string value"); Re

Cookie, LocalStorage 与 SessionStorage

Cookie, LocalStorage 与 SessionStorage相同点 都是储存在用户本地的数据. 意义在于避免数据在浏览器和服务器间不必要地来回传递. 三者的特点     同属于html5中的Web Storage 特性 Cookie localStorage sessionStorage 数据的生命期 可设置失效时间,默认是关闭浏览器后失效 除非被清除,否则永久保存 仅在当前会话下有效,关闭浏览器后被清除 存放数据大小 4K/个文件*最多20个 >5MB/站点 >5MB/站点 与