版本記錄
| 版本號 | 時間 |
|---|---|
| V1.0 | 2018.03.13 |
前言
我們做APP發(fā)起網(wǎng)絡(luò)請求,一般都是使用框架,這些框架的底層也都是蘋果的API,接下來幾篇就一起來看一下和網(wǎng)絡(luò)有關(guān)的幾個類。感興趣的可以看上面幾篇文章。
1. 詳細解析幾個和網(wǎng)絡(luò)請求有關(guān)的類 (一) —— NSURLSession
2. 詳細解析幾個和網(wǎng)絡(luò)請求有關(guān)的類(二) —— NSURLRequest和NSMutableURLRequest
3. 詳細解析幾個和網(wǎng)絡(luò)請求有關(guān)的類(三) —— NSURLConnection
4. 詳細解析幾個和網(wǎng)絡(luò)請求有關(guān)的類(四) —— NSURLSession和NSURLConnection的區(qū)別
5. 詳細解析幾個和網(wǎng)絡(luò)請求有關(guān)的類(五) —— 關(guān)于NSURL加載系統(tǒng)(一)
6. 詳細解析幾個和網(wǎng)絡(luò)請求有關(guān)的類(六) —— 使用NSURLSession(二)
7. 詳細解析幾個和網(wǎng)絡(luò)請求有關(guān)的類(七) —— URL數(shù)據(jù)的編碼和解碼(三)
8. 詳細解析幾個和網(wǎng)絡(luò)請求有關(guān)的類(八) —— 處理重定向和其他請求更改(四)
9. 詳細解析幾個和網(wǎng)絡(luò)請求有關(guān)的類(九) —— 身份驗證挑戰(zhàn)和TLS鏈驗證(五)
10. 詳細解析幾個和網(wǎng)絡(luò)請求有關(guān)的類(十) —— 理解獲取緩存(六)
回顧
上一篇主要講述關(guān)于獲取緩存方面的理解,這一篇我們主要看一下關(guān)于Cookies和自定義協(xié)議。
Cookie Storage - Cookies存儲
由于HTTP協(xié)議的無狀態(tài)特性,客戶端通常使用cookie來提供跨URL請求的持久數(shù)據(jù)存儲。 URL加載系統(tǒng)提供接口來創(chuàng)建和管理cookie,發(fā)送cookie作為HTTP請求的一部分,并在解釋web服務(wù)器的響應(yīng)時接收cookie。
NSHTTPCookie類封裝了一個cookie,為許多常用的cookie屬性提供訪問器。該類還提供了將HTTP cookie標頭轉(zhuǎn)換為NSHTTPCookie實例并將NSHTTPCookie實例轉(zhuǎn)換為適用于NSURLRequest對象的標頭的方法。除非請求指定不發(fā)送cookie,否則URL加載系統(tǒng)會自動發(fā)送適用于NSURLRequest對象的任何存儲的cookie。同樣,根據(jù)當前的Cookie接受策略接受在NSURLResponse對象中返回的Cookie。
NSHTTPCookieStorage類提供了管理所有應(yīng)用程序共享的NSHTTPCookie對象集合的接口。
iOS注意:Cookie不在iOS中的應(yīng)用程序之間共享。
NSHTTPCookieStorage允許應(yīng)用程序指定Cookie接受策略。 Cookie接受政策控制Cookie是否應(yīng)始終被接受,永遠不會被接受,或只能從與主文檔URL相同的域接受。
注意:更改應(yīng)用中的Cookie接受政策會影響所有其他正在運行的應(yīng)用的Cookie接受政策。
當另一個應(yīng)用程序更改cookie存儲或Cookie接受策略時,NSHTTPCookieStorage會通過發(fā)布NSHTTPCookieManagerCookieChangedNotification和NSHTTPCookieStorageAcceptPolicyChangedNotification通知來通知應(yīng)用程序。
有關(guān)更多信息,請參閱NSHTTPCookieStorage Class Reference和NSHTTPCookie Class Reference。
Protocol Support - 協(xié)議支持
URL加載系統(tǒng)設(shè)計允許客戶端應(yīng)用程序擴展支持傳輸數(shù)據(jù)的協(xié)議。 URL加載系統(tǒng)本身支持http,https,file,ftp和data協(xié)議。
您可以通過繼承NSURLProtocol來實現(xiàn)自定義協(xié)議,然后使用NSURLProtocol類方法registerClass:通過URL加載系統(tǒng)注冊新類。當NSURLSession對象為NSURLRequest對象啟動連接時,URL加載系統(tǒng)會按照注冊的相反順序查詢每個注冊類。第一個為canInitWithRequest:消息返回YES的類用于處理請求。
如果您的自定義協(xié)議需要其請求或響應(yīng)的附加屬性,則可以通過在NSURLRequest,NSMutableURLRequest和NSURLResponse類中為這些屬性提供訪問器來創(chuàng)建類別來支持它們。NSURLProtocol類提供了在這些訪問器中設(shè)置和獲取屬性值的方法。
URL加載系統(tǒng)負責在連接啟動并完成時創(chuàng)建和釋放NSURLProtocol實例。您的應(yīng)用程序絕不應(yīng)直接創(chuàng)建NSURLProtocol實例。
當一個NSURLProtocol子類由URL加載系統(tǒng)初始化時,它提供了一個遵循NSURLProtocolClient協(xié)議的客戶端對象。 NSURLProtocol子類將消息從NSURLProtocolClient協(xié)議發(fā)送到客戶端對象,以便在創(chuàng)建響應(yīng),接收數(shù)據(jù),重定向到新URL,需要身份驗證并完成加載時向URL加載系統(tǒng)通知其操作。如果自定義協(xié)議支持認證,那么它必須符合NSURLAuthenticationChallengeSender協(xié)議。
有關(guān)更多信息,請參閱 NSURLProtocol Class Reference。
后記
本篇主要說明關(guān)于Cookies和自定義協(xié)議,喜歡的給點個贊和關(guān)注下。
