1. 程式人生 > >資料快取sessionStorage、localStorage、cookie、session間的區別與聯絡

資料快取sessionStorage、localStorage、cookie、session間的區別與聯絡

 核心三步曲:建立-獲取-清除(回收)

sessionStorage.setItem("key","123");

sessionStorage.getItem("key");

sessionStorage.removeItem("key");

sessionStorage.clear();//清除所有

主要作用:用來儲存客戶端臨時資訊的物件【資料臨時存放區,能在一定程度上減少與伺服器的互動次數】

傳輸物件:字串型別的物件

當然我們可以針對性的去改變他的傳輸物件的限制,比如說要傳一個json資料,如下例項:

sessionStorage.setItem("key",'{"a":"1"}');

var jsonstr = sessionStorage.getItem("key");

var jsonval = JSON.parse(jsonstr);

console.log(jsonval["a"]);//輸出為1

sessionStorage與localStorage的區別與詳解

主要區別sessionStorage與localStorage的生命週期不一樣。

sessionStorage:瀏覽器關閉後其內部setItem的值會被自動刪除

localStorage   :只要你手動不清快取或者removeItem,clear等操作。設定的值會一直存在,關閉瀏覽器後還會存在(前提是你重新開啟同樣的網址)

例項講解:

百度首頁分別設定一個sessionStorage和localStorage的值並展示下

localStorage.setItem("local","123");

localStorage.getItem("local");

 

sessionStorage.setItem("session","234");

sessionStorage.getItem("session");

如下圖所示:

然後關閉百度瀏覽器,重新開啟百度首頁:

在通過下面的方式獲取資料值(或者用.length的方法來判斷彼此區別)如下圖所示:

上面兩種方式都是屬於web storage,他和cookie,session還是有些區別的

Cookie(客戶端)儲存於訪問者的計算機中的變數的大小是受限的,大概只允許4k

web storage(客戶端) 快取大小能到5m甚至更大。

這兩者都是儲存在瀏覽器端,且同源的

Session 在伺服器端,預設被存在在伺服器的一個檔案裡(不是記憶體),

Session的執行依賴 session id,而 session id 是存在 cookie 中的,也就是說,如果瀏覽器禁用了 cookie ,同時 session 也會失效(但是可以通過其它方式實現,比如在 url 中傳遞 session_id),和sessionStorage不是同一概念的,值得注意。

 【session和cookie概念】

詳解session和cookie的關係及作用(安全領域的基友和我講解後總結的)
sessionid就是為了保持會話的,sessionid我們只是要求登入前和登陸後要做個變化,如果是為了防止sessionid洩露,那麼就是用https

和具體使用者相關的,一般是儲存在資料庫裡的,比如一個使用者userid=1,你登入之後,隨機生成一個sessionid=abc,那麼這時再將abc和userid=1進行繫結,使用者的資料是和userid=1相關存在資料庫的

你重新登入,獲取新的sessiond=qqqqq,還是會根據你登入的使用者名稱查詢到userid=1,然後將qqqqq和userid=1繫結,可以session[username]=1111這樣的,叫做會話變數的

安全測試對sessionid就三個要求

1.足夠隨機

2.登入之後更新為新的

3.防止洩露就是用https了

cookie裡記錄sessionid值,後端根據cookie找到sessionid,再根據sessionid找到會話

Http是無狀態的協議

比如訪問一個獲取使用者資訊的頁面/userinfo.php,那麼兩個使用者同時訪問,如何確定你是哪個使用者

那我如果知道你的userid,是不是就能看到你的資訊了

而且所有和使用者相關的,都要帶userid引數,所以換成cookie裡儲存sessionid ,而且每次隨機也不用寫程式碼每次帶上userid引數了,開發也方便,一定程度上保證使用者資料安全。

相關推薦

簡述COOKIESESSION區別聯絡

cookie 和session 的區別:1、cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。2、cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙,考慮到安全應當使用session。3、session會在一定時間內儲存在伺服器上。當訪問增多,會比較佔用你伺

Linux環境變數使用者變數和shell變數的區別聯絡

1.shell簡介 shell是指為使用者提供操作介面的軟體,不同作業系統有著不同的shell,同一個作業系統也有著不同的shell。shell分為兩大類:圖形介面shell和命令列式shell。 圖形介面shell:windows作業系統下常用的windows Expl

ViewDataViewBagTempDataSession區別聯絡

一、引言     記得一次去面試,面試官問了我一個問題,在ASP.NET MVC中,頁面間和Controller與View之間傳遞引數有幾種方式?當時我就我把知道的幾種方式說了一下,然後面試官又問了一下ViewData與ViewBag的區別,今天把ASP.NE

linux下系統呼叫API系統命令,核心函式的區別聯絡

1.系統呼叫: 應用程式和核心間的橋樑,是應用程式訪問核心的入口點;但通常情況下,應用程式通過作業系統提供的API進行程式設計而不是使用系統呼叫直接程式設計; linux的全部系統呼叫加起來大約只有250個左右。 2.API:   API常以c庫(libc)的形式提供,

php中cookiesession區別簡易用法

php cookie session 一、區別1、Cookie是完全保存在客戶端。當客戶端禁止cookie時將不能再使用;對服務端壓力較小;可以指定生存周期;安全性差。2、Session是存放在服務端的。但session id是存放在客戶端的cookie中的,但php的session存放方法是多樣

GET和POST的區別,CookieSession區別聯絡,

1.GET和POST的區別 A. 從字面意思和HTTP的規範來看,GET用於獲取資源資訊而POST是用來更新資源資訊。 B. GET提交請求的資料實體會放在URL的後面,用?來分割,引數用&連線,舉個栗子:/index.html?name=wang&login=1

cookiesession區別聯絡

為什麼會有Cookie和Session的出現: TCP是無狀態的,當我們在訪問瀏覽器時,伺服器不會為客戶端儲存它上一次訪問的內容,每一次訪問都是獨立的。為了方便使用者的訪問,所以就出現了這兩個機制,使

cookiesession區別聯絡

區別 :         1  cookie是儲存在客戶端瀏覽器的         2  session是儲存在伺服器當中         

CookieSession區別聯絡及生命週期

       前幾天面試問了一個問題,當時記不太清了,上網查了下發現這個問題還真的很有講究而且很重要,自己總結下做下記錄。 一、Session與Cookie介紹 這些都是基礎知識,不過有必要做深入瞭解。先簡單介紹一下。 二者的定義: 當你在瀏覽網站的時候,WEB

資料快取sessionStoragelocalStoragecookiesession區別聯絡

 核心三步曲:建立-獲取-清除(回收) sessionStorage.setItem("key","123"); sessionStorage.getItem("key"); sessionStorage.removeItem("key"); sessionStora

sessionStorage localStoragecookie 之間的區別

大小 路徑 大小限制 共享 限制 存在 接口 也有 有效期 共同點:都是保存在瀏覽器端,且同源的。 區別: cookie數據始終在同源的http請求中攜帶(即使不需要),即cookie在瀏覽器和服務器間來回傳遞。而sessionStorage和localStorage

sessionStoragelocalStoragecookie

sessionStorage 和 localStorage 是HTML5 Web Storage API 提供的,可以方便的在web請求之間儲存資料。有了本地資料,就可以避免資料在瀏覽器和伺服器間不必要地來回傳遞。 sessionStorage、localStorage、cookie都是

javaweb:會話管理和儲存會話資料的兩種技術(CookieSession

會話: 什麼是會話? •會話可簡單理解為:使用者開一個瀏覽器,點選多個超連結,訪問伺服器多個web資源,然後關閉瀏覽器,整個過程稱之為一個會話。 會話過程中要解決的一些問題? •每個使用者與伺服器進行互動的過程中,各自會有一些資料,程式要想辦法儲存每個使用者的

4月16日 python學習總結 DBUtils模塊orm 和 cookiesessiontoken

用戶名 可用 繼續 打開 基於 動態 編號 身份認證 The 一、DBUtils模塊 介紹 The DBUtils suite is realized as a Python package containing two subsets of modules, one fo

資料資料資料幀的區別聯絡

幀與資料包 首先不容易理解的是資料包和幀。 資料包,就是從最上層,一層一層封裝,直到網路層的,最後藉由資料鏈路層傳送出去的資料單元。 幀,是資料鏈路層的傳輸單元。 這麼一看,資料包和幀好像沒什麼不一樣,好像資料傳遞的都是一樣的。可是為什麼會把它們區分開呢?學習 TCP/IP 協議的同

資料倉庫和資料集市的概念區別聯絡

1.為什麼會出現資料倉庫和資料集市?     “資料倉庫”的概念可以追溯到80 年代中期。從本質上講,最初資料倉庫是想為操作型系統到決策支援環境的資料流提供一種體系結構模型,並嘗試解決和這些資料流相關的各種問題。     在缺乏“資料倉庫”體系結構的情

sessioncookietoken的區別聯絡

1、定義 session session的中文翻譯是“會話”,當用戶開啟某個web應用時,便與web伺服器產生一次session。伺服器使用session把使用者的資訊臨時儲存在了伺服器上,使用者離開網站後session會被銷燬。這種使用者資訊儲存方式相對cookie來

Servlet第七篇【CookieSession區別應用】

Session和Cookie的區別 從儲存方式上比較 Cookie只能儲存字串,如果要儲存非ASCII字串還要對其編碼。 Session可以儲存任何型別的資料,可以把Session看成是一個容器

JSESSIONIDcookieSESSION區別聯絡 同名JSESSIONID處理

在一些投票之類的場合,我們往往因為公平的原則要求每人只能投一票,在一些WEB開發中也有類似的情況,這時候我們通常會使用COOKIE來實現,例如如下的程式碼: < % cookie[]cookies = request.getCookies(); if (cookies

詳解雲端計算資料和人工智慧的區別聯絡

今天跟大家講講雲端計算、大資料和人工智慧。為什麼講這三個東西呢?因為這三個東西現在非常火,並且它