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

四者的异同

特性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