這是我個(gè)人的學(xué)習(xí)筆記 , 如有不同見解歡迎評(píng)論交流 .
( 我的微博 : http://weibo.com/JohnnyB0Y )
HTTP 1.1 介紹
一個(gè)建立在TCP之上的通過HTML定義的超文本傳輸協(xié)議.
-
HTTP請(qǐng)求與響應(yīng)的步驟
1.C端建立一個(gè)到S端的TCP連接,然后發(fā)送HTTP請(qǐng)求.
2.S端隨后通過在同一個(gè)TCP連接上發(fā)送一個(gè)HTTP響應(yīng)來響應(yīng)請(qǐng)求.
3.C端接著可以重用這個(gè)TCP連接,發(fā)送另一個(gè)請(qǐng)求或?qū)⑦B接關(guān)閉.
-
HTTP與HTTPS的區(qū)別
1.兩者主要差別在于會(huì)話的連接建立階段.
2.在TCP連接建立好,HTTP請(qǐng)求發(fā)送前( 加入建立一個(gè)SSL會(huì)話 ),用于C端與S端協(xié)商使用何種密碼,交換公鑰,驗(yàn)證協(xié)商以及驗(yàn)證身份(可選).
3.當(dāng)SSL會(huì)話建立完畢后,在TCP連接之上傳輸?shù)乃袛?shù)據(jù)都是加密的.
-
HTTP請(qǐng)求內(nèi)容
1.請(qǐng)求行: 包含了( HTTP請(qǐng)求方法 )( 請(qǐng)求URI )( HTTP版本 )三方面信息.
2.請(qǐng)求頭: 向服務(wù)器提供額外的元數(shù)據(jù).
3.請(qǐng)求體: 可選的有固定數(shù)據(jù)編碼格式的數(shù)據(jù).
-
HTTP響應(yīng)內(nèi)容
1.狀態(tài)行: 包含了( HTTP版本 )( 狀態(tài)碼 )( 文本說明 )三方面信息.
2.響應(yīng)頭: 服務(wù)器響應(yīng)的元數(shù)據(jù).
3.響應(yīng)體: 服務(wù)器返回的有固定數(shù)據(jù)編碼格式的數(shù)據(jù).
網(wǎng)絡(luò)請(qǐng)求方式 :
NSURLConnection | 方法步驟 |
---|---|
GET請(qǐng)求 : | |
1. 創(chuàng)建URL地址字符串 | |
2. 拼接參數(shù) | |
3. URL字符串進(jìn)行百分號(hào)編碼 | |
4. 生成URL對(duì)象 | |
5.根據(jù)URL對(duì)象創(chuàng)建請(qǐng)求,并設(shè)置請(qǐng)求參數(shù) | |
6. 開始連接,發(fā)送請(qǐng)求 | |
POST請(qǐng)求 : | |
1. 創(chuàng)建URL地址字符串 | |
2. URL字符串進(jìn)行百分號(hào)編碼 | |
3. 生成URL對(duì)象 | |
4.根據(jù)URL對(duì)象創(chuàng)建請(qǐng)求,并設(shè)置請(qǐng)求參數(shù) | |
5.拼接HTTPBody : 參數(shù)表 | |
6. 開始連接,發(fā)送請(qǐng)求 | |
通過代理方法處理網(wǎng)絡(luò)請(qǐng)求 : | |
1.接收到服務(wù)器響應(yīng)后 ( 做拼接數(shù)據(jù)前的準(zhǔn)備 ) | - connection: didReceiveResponse: |
2.接收到數(shù)據(jù)后 ( 拼接數(shù)據(jù) ) | - connection: didReceiveData: |
3.接收數(shù)據(jù)完成 | - connectionDidFinishLoading: |
4.錯(cuò)誤處理 | - connection: didFailWithError: |