sessionStorage 、localStorage 、 cookie 和session之间的区别

本文详细对比了Session、Cookie、localStorage和sessionStorage的区别与联系,包括数据生命期、存放大小、与服务器通信方式等关键特性,并提供了PHP中Session和Cookie的具体使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

四者的异同

特性Session  CookielocalStoragesessionStorage
数据的生命期  在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。一般由服务器生成,可设置失效时间,关闭浏览器后,cookie数据仍然存在,直到过期时间结束才消失。如果在浏览器端生成Cookie,默认是关闭浏览器后失效除非被清除,否则永久保存仅在当前会话下有效,关闭页面或浏览器后被清除
存放数据大小大小没有限制4K左右一般为5MB
与服务器端通信由服务器端创建,比cookie安全, Session完全依赖于Cookie,所以cookie的缺点同样是session的缺点每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题仅在客户端(即浏览器)中保存,不参与和服务器的通信

 

localStorage和sessionStorage操作

localStorage和sessionStorage都具有相同的操作方法,例如setItem、getItem和removeItem等

localStorage和sessionStorage的方法

setItem存储value

用途:将value存储到key字段

sessionStorage.setItem("key", "value");     
localStorage.setItem("site", "baidu");
getItem获取value

用途:获取指定key本地存储的值

var value = sessionStorage.getItem("key");     
var site = localStorage.getItem("site");
removeItem删除key

用途:删除指定key本地存储的值

sessionStorage.removeItem("key");     
localStorage.removeItem("site");
clear清除所有的key/value

用途:清除所有的key/value

sessionStorage.clear();     
localStorage.clear();
其他操作方法:点操作和[ ]

web Storage不但可以用自身的setItem,getItem等方便存取,也可以像普通对象一样用点(.)操作符,及[]的方式进行数据存储,像如下的代码:

var storage = window.localStorage; 
storage.key1 = "hello";
storage["key2"] = "world";
console.log(storage.key1);
console.log(storage["key2"]);

 

php中Session和Cookie的使用

session

sesstion_start(); // 首先开启session

1>创建和更新

$_SESSION['user'] = 'username'; // 添加session 把username存在里面

2>删除session

// 删除session值,但保留数据类型
$_session['session键值'] = array();
// 删除cookie中的session_id
$session_id = session_name();
setCookie($session_id,"",time()-1);
// 释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session_id
session_unset();
// 删除当前用户对应的session文件以及释放session_id,但内存中的$_SESSION变量内容依然保留
session_destroy();

3>获取session

echo $_SESSION['user']; // 直接输出 username

 

cookie

1>创建和更新

setCookie($cookieName,$value,time()+秒数);

实例:setcookie("UserName","cnblogs",time()+2*7*24*3600);

2>删除Cookie

setcookie($cookieName,value,time()-秒数);
//或者
setcookie($cookiename, '');
//或者
setcookie($cookiename, NULL);

实例:setcookie("UserName","cnblogs",time()-3600);

3>获取cookie

$_COOKIE['UserName'];

 

转载于:https://www.cnblogs.com/qiufang/p/10683613.html

localStoragesessionStoragecookiesession是在Web开发中常用的四种数据存储方式,它们有以下区别: 1. localStoragelocalStorage是HTML5中引入的一种客户端存储数据的方式,数据存储在浏览器的本地,不会过期。存储的数据可以在同一个域名下的不同页面间共享。 2. sessionStoragesessionStorage也是HTML5中引入的一种客户端存储数据的方式,数据存储在浏览器的本地,但与localStorage不同的是,sessionStorage的数据只在当前会话有效,会话结束后数据会被清除。 3. cookiecookie是一种通过服务器发送给浏览器并保存在本地的小型文本文件,用于存储少量的数据。它可以设置过期时间,过期后会被浏览器自动删除。cookie的数据会在同一个域名下的所有页面间共享。 4. sessionsession是服务器端存储用户信息的一种机制。当用户访问Web应用时,服务器会为每个用户创建一个对应的session对象,用于存储用户的会话状态信息。session数据存储在服务器上,客户端只保存一个session ID,通过该ID与服务器进行交互。 总结来说,localStoragesessionStorage是浏览器端的存储方式,cookiesession是服务器端的存储方式。localStoragesessionStorage可以在浏览器端直接操作,而cookiesession需要通过HTTP请求与服务器交互。localStoragesessionStorage可以存储较大量的数据,而cookie一般只能存储4KB左右的数据。session数据存储在服务器上,相对安全,而cookielocalStorage/sessionStorage的数据存储在本地,相对不那么安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值