導語:
開發或者面試過程中,我們總是會看到這三個東西,cookie,localstorage,sessionstorage,那他們到底是什麼呢?有有什麼區別呢?別急一分鐘教會你。
我們先看看對比表,然後再詳細分析。
特性 | cookie | sessionStorage | localStorage |
---|---|---|---|
資料生命期 | 生成時就會被指定一個maxAge值,這就是cookie的生存週期,在這個週期內cookie有效,預設關閉瀏覽器失效 | 頁面對談期間可用 | 除非資料被清除,否則一直存在 |
存放資料大小 | 4K左右(因為每次http請求都會攜帶cookie) | 一般5M或更大 | 一般5M或更大 |
與伺服器通訊 | 由對伺服器的請求來傳遞,每次都會攜帶在HTTP頭中,如果使用cookie儲存過多資料會帶來效能問題 | 資料不是由每個伺服器請求傳遞的,而是隻有在請求時使用資料,不參與和伺服器的通訊 | 資料不是由每個伺服器請求傳遞的,而是隻有在請求時使用資料,不參與和伺服器的通訊 |
易用性 | cookie需要自己封裝setCookie,getCookie | 可以用源生介面,也可再次封裝來對Object和Array有更好的支援 | 可以用源生介面,也可再次封裝來對Object和Array有更好的支援 |
共同點 | 都是儲存在瀏覽器端,和伺服器端的session機制不同 | 都是儲存在瀏覽器端,和伺服器端的session機制不同 | 都是儲存在瀏覽器端,和伺服器端的session機制不同 |
cookie是存於使用者硬碟的一個檔案,這個檔案通常存放在我們的C槽中,這個檔案對應於一個域名,當瀏覽器再次存取這個域名時,這個cookie可以再次使用。
通常我們把它當成全域性變數,用於存放使用者在這個域名下的一些資訊(登陸狀態,瀏覽過程中留下的資訊),在每次跟伺服器端交流的過程中,都要攜帶過去,用於伺服器端驗證使用者端的身份。
因為兩者比較相似,就一起介紹
它只是在頁面對談期間可用,當你的頁面關閉後,這個儲存就會自動刪除,下次存取不能獲取上次的資訊。
它除非資料被清除,否則將一直存在,所以下次存取也能夠獲取到上次的資訊。
補充:
微信搜尋【web小館】,回覆全棧部落格專案,即可獲取專案原始碼和後續的實戰文章教學。每天用最簡單樸實的語言,潛移默化的提升你的計算機基礎知識和前端技術。小米粥,一個專注的web全棧工程師,我們下期再見!