sessionStorage 、localStorage 、 cookie 和session之間的區別


四者的異同

特性 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()-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'];

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM