昨天有同事和我說,打一個不同負載的包分別測試下咯邓夕,我第一反應有點懵刘莹,這個平常真心接觸的有點少,于是帶著疑惑去了解下焚刚,首先可以肯定的 是這個和 Cookie 相關(guān)的点弯。
一、Cookie 相關(guān)的了解
-
Cookie 的理解
- Cookie 是某些網(wǎng)站為了辨別用戶身份而儲存在用戶本地終端上的數(shù)據(jù)矿咕。
- Cookie 就是服務器暫存放在客戶端上的一筆資料抢肛,好讓服務器用于辨別客戶端。
-
Cookie 工作原理
- Cookie 和 負載均衡
當然 負載均衡 有很多方方面的捡絮,此處我只作為了解,了解下我們 App 端與其相關(guān)聯(lián)的莲镣。
#######備注參考:
PS : 會話 cookie 和持久性 cookie 的區(qū)別,說白了就是是否包含 到期日期 確定瑞侮。
二的圆、iOS 中 具體的用 Cookie
我之前用到的地方,主要是寫 Cookie 的咯半火,我們?yōu)榱藴y試特意在上線之前再加了一個預發(fā)布的環(huán)境越妈,就是為了模擬線上環(huán)境,其中就是對 Cookie 做標記的處理的慈缔。當然有寫叮称,肯定還有讀 Cookie的。
- NSHTTPCookie: cookie 對象
- NSHTTPCookieStorage : 管理所有 NSHTTPCookie 的對象
對上述兩個對象好好了解下藐鹤,就差不多了瓤檐。
#######寫 Cookie
// URL
NSURL *url = @"http://www.test.com";
// propertiesDic,可特殊設(shè)置娱节, 改變其也是看這里
NSDictionary *propertiesDic = @{
NSHTTPCookieName: @"testName",
NSHTTPCookieValue:@"testValue",
NSHTTPCookieDomain: url.host,
NSHTTPCookiePath: url.path
};
NSHTTPCookie *cookie = [[NSHTTPCookie alloc] initWithProperties: propertiesDic];
// 設(shè)置 Cookie
[[NSHTTPCookieStorage sharedHTTPCookieStorage]setCookie:cookie];
- NSHTTPCookie 可中可改變的屬性挠蛉,特變注意前面幾個。
FOUNDATION_EXPORT NSHTTPCookiePropertyKey const NSHTTPCookieName;
FOUNDATION_EXPORT NSHTTPCookiePropertyKey const NSHTTPCookieValue;
FOUNDATION_EXPORT NSHTTPCookiePropertyKey const NSHTTPCookieOriginURL;
FOUNDATION_EXPORT NSHTTPCookiePropertyKey const NSHTTPCookieVersion;
FOUNDATION_EXPORT NSHTTPCookiePropertyKey const NSHTTPCookieDomain;
FOUNDATION_EXPORT NSHTTPCookiePropertyKey const NSHTTPCookiePath;
FOUNDATION_EXPORT NSHTTPCookiePropertyKey const NSHTTPCookieSecure;
FOUNDATION_EXPORT NSHTTPCookiePropertyKey const NSHTTPCookieExpires;
FOUNDATION_EXPORT NSHTTPCookiePropertyKey const NSHTTPCookieComment;
FOUNDATION_EXPORT NSHTTPCookiePropertyKey const NSHTTPCookieCommentURL;
FOUNDATION_EXPORT NSHTTPCookiePropertyKey const NSHTTPCookieDiscard;
FOUNDATION_EXPORT NSHTTPCookiePropertyKey const NSHTTPCookieMaximumAge;
FOUNDATION_EXPORT NSHTTPCookiePropertyKey const NSHTTPCookiePort;
#######讀 Cookie
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [cookieStorage cookies]) {
NSLog(@"%@", cookie);
}
#######清空 Cookie
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [cookieStorage cookies]) {
[cookieStorage deleteCookie: cookie];
}
說白了就是下面屬性 和 方法的運用:
/*!
@method cookies
@abstract Get all the cookies
@result An NSArray of NSHTTPCookies
*/
@property (nullable , readonly, copy) NSArray<NSHTTPCookie *> *cookies;
/*!
@method setCookie:
@abstract Set a cookie
@discussion The cookie will override an existing cookie with the
same name, domain and path, if any.
*/
- (void)setCookie:(NSHTTPCookie *)cookie;
/*!
@method deleteCookie:
@abstract Delete the specified cookie
*/
- (void)deleteCookie:(NSHTTPCookie *)cookie;
整體來說肄满,此次是更多的是 Cookie 和 負載相關(guān)的了解谴古,對 iOS 之外的更多理解才是重點,也是需要額外注意的稠歉。
#######備注參考:Cookie機制以及cookie在iOS中使用介紹