cookie對應(yīng)的是域。
一暖侨、
在看項目中代碼時状婶,看到對于每次加載一個 webView或 wkwebview 頁面,每次都初始化 cookie 和在 Requset 的請求頭中加入了 cookie眷细。便學(xué)習(xí)下 cookie 相關(guān)知識。
在我們項目中在每次初始化 webView或 wk 時同時執(zhí)行一個 configCookie 方法鹃祖。跟進(jìn)發(fā)現(xiàn)是調(diào)用單利 NSHTTPCookieStorage 來設(shè)置 cookie溪椎。
NSHTTPCookieStorage中保存的對象是 NSHTTPCookie,NSHTTPCookie中對象相應(yīng)的 domain 是域名恬口, cookieName 是字典對應(yīng)的 key 值校读, value 則是字典對應(yīng)的 value。
二祖能、
同時要理解到 cookie 是服務(wù)器生成的歉秫。客戶端只能進(jìn)行保存养铸,或每次請求都加入保存的 cookie端考。
每次請求完,服務(wù)器給客戶端返回的 response 中都包含服務(wù)器中的 ?cookie揭厚。我們可以對服務(wù)器給我們返回的 response 中的cookie 進(jìn)行操作,可以保存在本地扶供,可以更新 NSHTTPCookieStorage筛圆。
可以通過上圖中的上中方法拿到 response 中的 cookie。
Safari 瀏覽器和iOS應(yīng)用程序?qū)⒂谰胏ookie保存在Cookies.binarycookies文件中
參數(shù) 描述
name 必需椿浓。規(guī)定 cookie 的名稱太援。
value 必需。規(guī)定 cookie 的值扳碍。
expire 可選提岔。規(guī)定 cookie 的有效期。
path 可選笋敞。規(guī)定 cookie 的服務(wù)器路徑碱蒙。
domain 可選。規(guī)定 cookie 的域名。
secure 可選赛惩。規(guī)定是否通過安全的 HTTPS 連接來傳輸 cookie哀墓。
永久cookie:如果服務(wù)器設(shè)置了Cookie失效時間expire ,sessionOnly:FALSE會被持久化到文件中,kill掉后系統(tǒng)自動保存喷兼,下次啟動app會自動加載.binarycookies中的Cookies篮绰,以下是一條Cookie輸出
會話cookie:?如果沒設(shè)置Cookie失效時間expires:(null),sessionOnly:true,kill掉后系統(tǒng)不會自動保存Cookie季惯,如果想持久化Cookie 模仿瀏覽器存住Cookie吠各,使用NSUserDefaults存下即可,以下是一條Cookie輸出
參考鏈接