sessionStorage 、localStorage 、 cookie 和session之间的区别
2024-09-24 16:40:50
四者的异同
特性 | Session | Cookie | localStorage | sessionStorage |
---|---|---|---|---|
数据的生命期 | 在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用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()-);
// 释放当前在内存中已经创建的所有$_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>删除Cookie
setcookie($cookieName,value,time()-秒数);
//或者
setcookie($cookiename, '');
//或者
setcookie($cookiename, NULL); 实例:setcookie("UserName","cnblogs",time()-);
3>获取cookie
$_COOKIE['UserName'];
最新文章
- 攻破JAVA NIO技术壁垒
- 背水一战 Windows 10 (9) - 资源: 资源限定符概述, 资源限定符示例
- 【BZOJ-1369】Gem 树形DP
- 洛谷 P1462 通往奥格瑞玛的道路 Label: 最小化最大值 &;&; spfa (存多条边示例)
- android-数据存储之手机内部file存储
- 使用vs2013打开vs2015项目
- NGUI 减少drawcall规则
- net中前台javascript与后台c#函数相互调用
- 走进React的学习之路
- 使用Visual Studio创建映像向导(Image Sprite)——Web Essential
- PMD教程
- Android调用binder实现权限提升-android学习之旅(81)
- 用calc()绘制手机图案解锁的九宫格样式
- Python神器 Jupyter Notebook
- 读HashMap 源码(jdk11)的见解
- 痞子衡嵌入式:恩智浦LPC系列MCU开发那些事 - 索引
- Confluence 6 指定日志选项和已知问题
- LeetCode-Microsoft-Remove K Digits
- opencv3.2.0图像对比度与亮度调整
- CodeForces 915D Almost Acyclic Graph