HTTP 介紹
1. HTTP請(qǐng)求與響應(yīng)
HTTP請(qǐng)求遵循著客戶端-服務(wù)器范式
請(qǐng)求步鄹序列:客戶端建立一個(gè)到服務(wù)器的TCP連接 》發(fā)送HTTP請(qǐng)求 》服務(wù)器隨后通過(guò)在同一個(gè)TCP連接上發(fā)送HTTP響應(yīng)該請(qǐng)求涯雅。接下來(lái)雄卷,客戶端可以重用這個(gè)TCP連接缎患,發(fā)送另一個(gè)請(qǐng)求或是將連接關(guān)閉渠旁。早期HTTP協(xié)議版本只允許在一個(gè)TCP連接上發(fā)送一個(gè)請(qǐng)求纫事。HTTP 1.1則允許客戶端重用連接
HTTP 與 HTTPS 之間的最重要差別在于會(huì)話的連接建立階段蜕衡。在TCP連接建立好囚灼,HTTP請(qǐng)求發(fā)送之前呢蛤,客戶端與服務(wù)器之間必須建立SSL會(huì)話特铝,SSL會(huì)話建立包含:客戶端與服務(wù)器協(xié)商使用何種密碼暑中、交換公鑰壹瘟、驗(yàn)證協(xié)商以及驗(yàn)證身份。當(dāng)SSL會(huì)話建立完畢后鳄逾,在TCP連接之上傳輸?shù)乃袛?shù)據(jù)都將加密稻轨。
2.URL 結(jié)構(gòu)
協(xié)議 認(rèn)證 主機(jī)名 端口 絕對(duì)路徑 查詢字符串
http://user:password@hostname:port/absolute-path?query
IOS 的URL加載系統(tǒng)中,NSURL對(duì)象用于管理URL對(duì)象雕凹, 由于絕對(duì)路徑與查詢字符串的內(nèi)容受限殴俱,因此URL通常會(huì)使用百分號(hào)進(jìn)行編碼。 http://www.reibang.com/p/6722d6fe1403
3.請(qǐng)求內(nèi)容
HTTP請(qǐng)求包含3個(gè)部分:請(qǐng)求行枚抵、請(qǐng)求頭與請(qǐng)求體
請(qǐng)求行是發(fā)送給服務(wù)器的第一行數(shù)據(jù)粱挡。請(qǐng)求行中包含3方面主要信息:HTTP請(qǐng)求方法、請(qǐng)求URI 與HTTP版本
IOS 中俄精,NSURLRequest 及其子類NSMutableURLRequest提供了必要的方法與屬性來(lái)構(gòu)建HTTP請(qǐng)求
4.響應(yīng)內(nèi)容
在HTTP服務(wù)器與應(yīng)用服務(wù)器處理完請(qǐng)求后询筏,HTTP響應(yīng)會(huì)通過(guò)同一個(gè)TCP socket返回給客戶端。HTTP響應(yīng)的結(jié)構(gòu) 第一行為狀態(tài)行竖慧,后面是頭嫌套,然后為響應(yīng)體
IOS 中,NSURLResponse 及其子類NSMutableURLResponse封裝請(qǐng)求返回的數(shù)據(jù)