前端緩存都有哪些方法,有什麼區別?
03-10
瀏覽器緩存機制可以減少網路開銷,以便獲得更好的用戶體驗。在前端中常用的緩存有cookie及html中的localStorage和sessionStorage,那麼它們有什麼區別和聯繫?前端cookie和後端cookie、session有什麼區別?根據我的理解,整理如下:
1、cookie、localStorage、sessionStorage區別和聯繫
共同點:都是保存在瀏覽器端,且同源的。
2)cookie數據還有路徑(path)的概念,可以限制cookie只屬於某個路徑下。存儲大小限制也不同,cookie數據不能超過4k,同時因為每次http請求都會攜帶cookie,所以cookie只適合保存很小的數據,如會話標識。
sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多,可以達到5M或更大。
localStorage:始終有效,窗口或瀏覽器關閉也一直保存,因此用作持久數據;
cookie只在設置的cookie過期時間之前一直有效,即使窗口或瀏覽器關閉。
4)作用域不同:
2、禁用cookie後,會出現什麼現象?
一般情況session是需要cookie配合使用的,但是有些瀏覽器禁用cookie後,就需要使用其他方式來實現回話管理。
在客戶端禁用Cookie的時候,我們要怎麼做呢,可以有以下兩種方法
· 如果是虛擬主機或者租用的伺服器,無法去修改PHP.ini,那麼可以手動通過URL傳值,或者通過隱藏表單傳遞session id。說簡單些就是自己去操縱sessionid這個唯一標識符,去鑒別用戶即可。
3、登陸信息一般放在session中,cookie還有用嗎?
前端可以通過document.cookie來設置cookie,但是這種方式會暴露信息,除非hash加密;
伺服器接受到http請求後在響應頭加上Set-Cookie欄位,它的值是要設置的Cookie的
推薦閱讀:
1、cookie、localStorage、sessionStorage區別和聯繫
共同點:都是保存在瀏覽器端,且同源的。
區別:
2)cookie數據還有路徑(path)的概念,可以限制cookie只屬於某個路徑下。存儲大小限制也不同,cookie數據不能超過4k,同時因為每次http請求都會攜帶cookie,所以cookie只適合保存很小的數據,如會話標識。
sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多,可以達到5M或更大。
3)數據有效期不同:
localStorage:始終有效,窗口或瀏覽器關閉也一直保存,因此用作持久數據;
cookie只在設置的cookie過期時間之前一直有效,即使窗口或瀏覽器關閉。
4)作用域不同:
不同瀏覽器無法共享localStorage或sessionStorage中的信息。相同瀏覽器的不同頁面間可以共享相同的localStorage(頁面屬於相同域名和埠),但是不同頁面或標籤頁間無法共享sessionStorage的信息
2、禁用cookie後,會出現什麼現象?
一般情況session是需要cookie配合使用的,但是有些瀏覽器禁用cookie後,就需要使用其他方式來實現回話管理。
在客戶端禁用Cookie的時候,我們要怎麼做呢,可以有以下兩種方法
URL重寫或者隱藏域(暴露信息不安全,一般不用)
· 如果是虛擬主機或者租用的伺服器,無法去修改PHP.ini,那麼可以手動通過URL傳值,或者通過隱藏表單傳遞session id。說簡單些就是自己去操縱sessionid這個唯一標識符,去鑒別用戶即可。
3、登陸信息一般放在session中,cookie還有用嗎?
有用,session會將sessionId存到cookie,再次請求時將sessionId隨請求頭給伺服器,然後拿到sessionId進行查詢即可。也就是說身份信息不會暴露在瀏覽器緩存中。只有sessionId暴露,提高安全性。
前端可以通過document.cookie來設置cookie,但是這種方式會暴露信息,除非hash加密;
伺服器接受到http請求後在響應頭加上Set-Cookie欄位,它的值是要設置的Cookie的
推薦閱讀: