cookie簡單介紹
cookie存儲了網站的一些很重要的信息,如用戶身份信息、常用設置、設置地理位置等等各種信息。
使用cef訪問網站時,如果設置了CefSettings.cache_path參數,則cookie等相關信息會保存在該目錄下,若未設置則會保存在程序的內存中。
下圖是訪問 www.baidu.com 頁面保存在指定位置的網站數據,可以看的其中也包括Cookies信息:
多頁面共享cookie問題
有時某個網站我們想登錄多個賬號,但是會發現登錄新的賬號後,舊賬號就退出了,即便打開多個瀏覽器操作結果也是一樣的。這是因爲新登錄賬號的cookie覆蓋了舊賬號的cookie,舊賬號自然就失效了。
google chrome提供了一種“無痕窗口”模式,在菜單欄可以打開無痕窗口,該模式不會保存cookie等網站信息,旨在保護用戶隱私。發現在該模式下登錄的賬號和在普通頁面上登錄的賬號,可以同時保持在線,其實就是因爲cookie等信息存儲在不同的位置,不會互相覆蓋。
若設置了CefSetting.cache_path,則所有頁面cookie都會保存在該目錄下,當登錄某網站多個賬號時,cookie被覆蓋,就只能保持一個賬號在線了。若不設置cache_path則cookie會保存在內存中,登錄多個賬號時cookie同樣會被覆蓋。
單頁面cookie存儲位置設置
解決上述問題,自然想到把每個頁面的cookie單獨存儲就好了。在創建瀏覽器時通過CefRequestContextSettings可以指定頁面cookie等信息存儲位置,如下代碼: