cookie
由服務端生成,用於標識用戶身份;而兩個storage
用於瀏覽器端緩存數據html
通常狀況下瀏覽器端不會修改 cookie
,但會頻繁操做兩個storage
web
cookie
有path概念,子路徑能夠訪問父路徑 cookie
,父路徑不能訪問子路徑 cookie
跨域
有效期: cookie
在設置的有效期內有效,默認爲瀏覽器關閉;sessionStorage
在窗口關閉前有效,localStorage
長期有效,直到用戶刪除瀏覽器
瀏覽器不能保存超過300個 cookie
,單個服務器不能超過20個,每一個 cookie
不能超過4k。web storage大小支持能達到5M緩存
共享:sessionStorage
不能共享,localStorage
在同源文檔之間共享, cookie
在同源且符合path規則的文檔之間共享安全
若是保存了 cookie
的話,http請求中必定會帶上;而兩個storage
能夠由腳本選擇性的提交服務器
安全性方面, cookie
中最好不要放置任何明文的東西。兩個storage
的數據提交後在服務端必定要校驗cookie
三者都是鍵值對的集合session
都會在瀏覽器端保存,有大小限制,同源限制post
cookie
隔離
即優化方案中提到的靜態資源放在不帶cookie
的域名下的解決方案
若是靜態文件都放在主域名下,那靜態文件請求的時候都帶有的cookie
的數據提交給server
的,很是浪費流量, 因此不如隔離開。 由於cookie
有域的限制,所以不能跨域提交請求,故使用非主要域名的時候,請求頭中就不會帶有cookie
數據, 這樣能夠下降請求頭的大小,下降請求時間,從而達到下降總體請求延時的目的。 同時這種方式不會將cookie
傳入Web Server
,也減小了Web Server
對cookie
的處理分析環節, 提升了Web Server
的http請求的解析速度。
詳說 Cookie, LocalStorage 與 SessionStorage
爲何不少網站的靜態資源會使用獨立的域名?