cookie怎么用和localstory什么时候用什么

cookie机制:
正统的cookie分发是通过扩展http协议来实现的,服务端通过在http的响应头加上一行特殊的只是以提示浏览器按照指定生成相应的cookie.cookie的使用是由浏览器按照一定的原则在后台自动发送给服务端的。
cookie的内容包括:名字、值、过期时间、路径和域;路径和域一起构成cookie的作用范围。
若不设置过期时间,则表示这个这个cookie的生命期为浏览器回话期间,关闭浏览器,cookie就会消失,这种生命期为浏览器回话期的cookie被称为会话cookie.会话cookie一般存在内存里。
若设置了过期时间,浏览器就会把cookie保存在硬盘里,关闭后再次打开浏览器,没有超过过期时间,cookie仍然有效,存储在硬盘上的cookie可以在不同浏览器进程间共享。
session机制:
对于保存在内存里的cookie,不同的浏览器有不同的session机制,session机制是一种服务端的机制。
当程序需要为某个客户端的请求创建一个session时,服务端首先检查这个客户端的请求里是否已包含了一个session标识(session id),如果有,服务端就按照这个标识检索,检索不到就新建一个,生成一个与此session相关联的标识,这个session id将在本次响应中返回给客户端保存。
session id是不重复,不容易找到规律的字符串。
cookie 和 session 的区别
1、cookie数据存放在客户端浏览器上,session数据放在服务器上
2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗考虑到安全应该使用session
3、session会在一定时间内保存在服务器,当访问增多,会比较占用服务器性能,考虑到减轻服务器性能方面,应使用cookie
4、单个cookie保存的数据不能超过4k,很多浏览器一个站点最多保存20个cookie
5、可以将登陆信息保存在session
6、session保存的是对象,cookie保存的是字符串
7、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到;而cookie中如果设置了路径参数,那么在同一个网站中不同路径下cookie互相访问不到
sessionStorage\localStorage\cookie都是浏览器端存储的数据
sessionStorage引入了一个浏览器窗口的概念,是在同源同窗口内,始终存在的数据,也就是浏览器不关闭,即使刷新或进入同源另一个页面,数据仍然存在;关闭窗口后即被销毁;同时独立打开不同窗口,即使是同一页面,sessionStorage对象也是不同的
sessionStorage\localStorage\cookie区别:
共同点:都是保存在浏览器端,且同源的
1、cookie数据在同源的http请求中携带,即在浏览器和服务器间来回传递;而sessionStorage和localStorage 不会自动把数据发给服务器,仅在本地保存
2、cookie有路径概念,可以限制cookie只属某个路径
3、存储大小限制不同:cookie不能超过4k,sessionStorage和localStorage可以达到5M或更大
4、有效期不同:sessionStorage仅在当前浏览器窗口关闭前有效,不能持久保存;localStorage始终有效,窗口或浏览器关闭也一直保存,可做持久保存;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭
5、作用域不同:sessionStorage不在不同浏览器窗口中共享;localStorage 和cookie在所有同源窗口中都是共享的;
Web Storage(sessionStorage\localStorage)带来的好处:
减少网络流量:一旦数据保存在本地后,就可以避免再向服务器请求数据,减少请求次数
性能好:从本地读数据比通过网络从服务器获得数据快的多
临时存储:很多时候数据只需要在用户浏览一组页面期间使用,关闭窗口后数据就可以丢弃了,这种情况使用sessionStorage非常方便
操作方式:
window.localStorage和window.sessionStorage
Storage类的相关成员如下:
设置参数:localStorage.setItem(‘age’, 40);
获取数据: = .getItem(‘age’);
删除数据:localStorage.removeItem(‘age’);
删除所有的键值对:localStorage.clear();
需要开发者自己封装setCookie,getCookie
应用场景:
cookie:记录登陆信息
localStorage: 购物车,网站访问计数
sessionStorage:多步骤引导用户填写信息,同窗口信息记录传递
安全性考虑:
xss注入风险,不要存储敏感数据
浏览器本地存储与服务器存储的区别:
1、浏览器可以保存一些数据,需要的时候直接从本地获取,例如sessionStorage、localStorage和cookie
2、服务器也可以保存所有用户的数据,但需要的时候浏览器要想服务器请求数据
a、保存用户的持久数据:数据库和云存储将用户的大量数据保存在服务器端
b、保存用户的临时会话数据,服务器端的session机制:jsp的session,有效期即在服务端设置的session有效期
3、服务端保存所有用户的数据,开销大;浏览器端保存则把不同用户需要的数据分布保存在用户各自的浏览器中
4、浏览器一般用来存储小数据,服务器存储大数据或小数据
浏览器在一次 HTTP 请求中,需要传输一个 4097 字节的文本数据给服务端,可以采用那些方式?e
  a.存入indexDB
  b.写入cookie
  c.放在url参数
  d.写入session
  e.使用post
  f.放在local storage
解析: IndexdDB 是 HTML5 的本地存储,把一些数据存储到浏览器(客户端)中,当与网络断开时,可以从浏览器中读取数据,用来做一些离线应用。
    Cookie 通过在客户端 ( 浏览器 ) 记录信息确定用户身份,最大为 4 kb =4096b。
    url 参数用的是 get 方法,从服务器上获取数据,大小不能大于 2 kb 。
    Session 是服务器端使用的一种记录客户端状态的机制 。
    post 是向服务器传送数据,数据量较大。
    local Storage 也是 HTML5 的本地存储,将数据保存在客户端中(一般是永久的)。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:7419次
排名:千里之外
原创:11篇
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'网页中cookie、localStorage的区别
网页中的cookie、localStorage、sessionStorage区别在一些面试题目中会经常会遇到,下面总结一下,三者的区别。1.cookie:可设置失效时间,默认是关闭浏览器后失效,4K左右,每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题,需要程序员自己封装,源生的Cookie接口不友好。2.localStorage:除非被清除,否则永久保存,一般为5MB,仅在客户端(即浏览器)中保存,不参与和服务器的通信,源生接口可以接受,亦可再次封装来对Object和Array有更好的支持。3.sessionStorage:仅在当前会话下有效,关闭页面或浏览器后被清除,一般为5MB,仅在客户端(即浏览器)中保存,不参与和服务器的通信,源生接口可以接受,亦可再次封装来对Object和Array有更好的支持。应用场景: 因为考虑到每个 HTTP 请求都会带着 Cookie 的信息,所以 Cookie 当然是能精简就精简啦,比较常用的一个应用场景就是判断用户是否登录。针对登录过的用户,服务器端会在他登录时往 Cookie 中插入一段加密过的唯一辨识单一用户的辨识码,下次只要读取这个值就可以判断当前用户是否登录啦。曾经还使用 Cookie 来保存用户在电商网站的购物车信息,如今有了 localStorage,似乎在这个方面也可以给 Cookie 放个假了 而另一方面 localStorage 接替了 Cookie 管理购物车的工作,同时也能胜任其他一些工作。比如HTML5游戏通常会产生一些本地数据,localStorage 也是非常适用的。如果遇到一些内容特别多的表单,为了优化用户体验,我们可能要把表单页面拆分成多个子页面,然后按步骤引导用户填写。这时候 sessionStorage 的作用就发挥出来了。
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
今日搜狐热点&&&&&&&&&&&
sessionStorage 和 localStorage 是HTML5 Web Storage API 提供的,可以方便的在web请求之间保存数据。有了本地数据,就可以避免数据在浏览器和服务器间不必要地来回传递。sessionStorage、localStorage、cookie都是在浏览器端存储的数据,其中sessionStorage的概念很特别,引入了一个“浏览器窗口”的概念。sessionStorage是在同源的同窗口(或tab)中,始终存在的数据。也就是说只要这个浏览器窗口没有关闭,即使刷新页面或进入同源另一页面,数据仍然存在。关闭窗口后,sessionStorage即被销毁。同时“独立”打开的不同窗口,即使是同一页面,sessionStorage对象也是不同的。Web Storage带来的好处:减少网络流量:一旦数据保存在本地后,就可以避免再向服务器请求数据,因此减少不必要的数据请求,减少数据在浏览器和服务器间不必要地来回传递。快速显示数据:性能好,从本地读数据比通过网络从服务器获得数据快得多,本地数据可以即时获得。再加上网页本身也可以有缓存,因此整个页面和数据都在本地的话,可以立即显示。临时存储:很多时候数据只需要在用户浏览一组页面期间使用,关闭窗口后数据就可以丢弃了,这种情况使用sessionStorage非常方便。浏览器本地存储与服务器端存储之间的区别其实数据既可以在浏览器本地存储,也可以在服务器端存储。浏览器端可以保存一些数据,需要的时候直接从本地获取,sessionStorage、localStorage和cookie都由浏览器存储在本地的数据。服务器端也可以保存所有用户的所有数据,但需要的时候浏览器要向服务器请求数据。1.服务器端可以保存用户的持久数据,如数据库和云存储将用户的大量数据保存在服务器端。2.服务器端也可以保存用户的临时会话数据。服务器端的session机制,如jsp的 session 对象,数据保存在服务器上。实现上,服务器和浏览器之间仅需传递session id即可,服务器根据session id找到对应用户的session对象。会话数据仅在一段时间内有效,这个时间就是server端设置的session有效期。服务器端保存所有的用户的数据,所以服务器端的开销较大,而浏览器端保存则把不同用户需要的数据分布保存在用户各自的浏览器中。浏览器端一般只用来存储小数据,而服务器可以存储大数据或小数据。服务器存储数据安全一些,浏览器只适合存储一般数据。sessionStorage 、localStorage 和 cookie 之间的区别共同点:都是保存在浏览器端,且同源的。区别:cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。Web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便。
阅读(...) 评论()

我要回帖

更多关于 cookie httponly 作用 的文章

 

随机推荐