標籤:ios開發 cookie 擷取cookie 刪除cookie cookie策略
/***** Cookie(小甜餅) *****///cookie介紹Cookie由伺服器端產生,發送給用戶端用戶端將Cookie的key/value儲存到某個目錄下的文字檔內如果用戶端支援Cookie,下次請求同一網站時就可以Cookie直接發送給伺服器Cookie名稱和值由伺服器端開發自己定義Cookies最典型的應用是判定註冊使用者是否已經登入,記錄使用者登入資訊,簡化下次登入的過程另一個重要應用場合是“購物車”在iOS程式中,預設就支援Cookie,程式員無需做任何處理如果伺服器返回Cookie,會自動儲存在沙箱的 Library/Cookies 目錄中/* Cookie的儲存策略 */ @property NSHTTPCookieAcceptPolicy cookieAcceptPolicy; NSHTTPCookieAcceptPolicyAlways, 永遠 NSHTTPCookieAcceptPolicyNever, 永不 NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain 只記錄主網域名稱的Cookie //提示:如果禁用Cookie有些網路訪問會不正常! //這個選項只要知道即可,不建議修改! /* Cookie的儲存 */ 儲存在 沙箱/Library/Cookies 目錄下,以二進位的形式儲存 但是仍然能夠看到密碼的明文,說明不安全!/* 擷取cookie的方法 */// 檢查Cookie中是否儲存了使用者的資訊 // 1. 拿出所有的cookieNSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; // 2. 遍曆cookies檢查是否有使用者名稱和密碼for (NSHTTPCookie *cookie in cookies) { /** NSHTTPCookie中儲存的內容 name: 變數名->變數名&值是從伺服器返回的 value: 變數值 */ NSLog(@"%@", cookie); if ([cookie.name isEqualToString:@"userName"]) { // 使用者名稱 self.nameText.text = cookie.value; } else if ([cookie.name isEqualToString:@"userPassword"]) { // 密碼 self.pwdText.text = cookie.value; }}// 3. 刪除Cookie// 讀取所有cookieNSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];// 刪除cookiefor (NSHTTPCookie *cookie in cookies) { [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];}/* Cookie的缺陷 */Cookie會被附加在每個HTTP請求中,會增加額外的流量在HTTP請求中的Cookie是明文傳遞的,因此會有安全隱患,除非使用HTTPSCookie的大小限制在4KB左右,不適合儲存複雜的資料資訊
iOS中的Cookie