iOS開發之http協議

2021-07-09 05:11:54 字數 3630 閱讀 2738

一、url

1.基本介紹

url的全稱是uniform resource locator(統一資源定位符)

通過1個url,能找到網際網路上唯一的1個資源

url就是資源的位址、位置,網際網路上的每個資源都有乙個唯一的url

2.url中常見的協議

超文字傳輸協議,訪問的是遠端的網路資源,格式是http://

http協議是在網路開發中最常用的協議

(2)file

訪問的是本地計算機上的資源,格式是file://(不用加主機位址)

(3)mailto

訪問的是電子郵件位址,格式是mailto:

(4)ftp

訪問的是共享主機的檔案資源,格式是ftp://

二、http協議

1.http協議簡介

不管是移動客戶端還是pc端,訪問遠端的網路資源經常使用http協議

獲得大眾點評的**資料

2.http協議的作用

http的全稱是hypertext transfer protocol,超文字傳輸協議

(1)規定客戶端和伺服器之間的資料傳輸格式

(2)讓客戶端和伺服器能有效地進行資料溝通

3.為什麼選擇使用http?

(1)簡單快速  因為http協議簡單,所以http伺服器的程式規模小,因而通訊速度很快

(2)靈活  http允許傳輸任意型別的資料

(3)http 0.9和1.0使用非持續連線  限制每次連線只處理乙個請求,伺服器對客戶端的請求做出響應後,馬上斷開連線,這種方式可以節省傳輸時間

4.http的通訊過程

要想使用http協議向伺服器索取資料,得先了解http通訊的完整過程

完整的http通訊可以分為2大步驟

(1)請求:客戶端向伺服器索要資料

(2)響應:伺服器返回客戶端相應的資料

三、http通訊過程 - 請求和響應

1.http通訊過程 - 請求

http協議規定:1個完整的由客戶端發給伺服器的http請求中包含以下內容

請求行:包含了請求方法、請求資源路徑、http協議版本

請求頭:包含了對客戶端的環境描述、客戶端請求的主機位址等資訊

host: 192.168.1.105:8080 // 客戶端想訪問的伺服器主機位址

user-agent: mozilla/5.0 (macintosh; intel mac os x 10.9) firefox/30.0// 客戶端的型別,客戶端的軟體環境

accept: text/html, */*// 客戶端所能接收的資料型別

accept-language: zh-cn // 客戶端的語言環境

accept-encoding: gzip // 客戶端支援的資料壓縮格式

請求體:客戶端發給伺服器的具體資料,比如檔案資料

2.http通訊過程 - 響應

客戶端向伺服器傳送請求,伺服器應當做出響應,即返回資料給客戶端

http協議規定:1個完整的http響應中包含以下內容:

狀態行:包含了http協議版本、狀態碼、狀態英文名稱

響應頭:包含了對伺服器的描述、對返回資料的描述

server: apache-coyote/1.1 // 伺服器的型別

content-type: image/jpeg // 返回資料的型別

content-length: 56811 // 返回資料的長度

date: mon, 23 jun 2014 12:54:52 gmt // 響應的時間

實體內容:伺服器返回給客戶端的具體資料,比如檔案資料

3.補充:推薦工具firebug-1.12.5-fx.xpi   

蟲子的作用:攔截所有的http請求。

4.常見的響應狀態碼

四、傳送http請求的方法

1.簡單說明

在http/1.1協議中,定義了8種傳送http請求的方法

get、post、options、head、put、delete、trace、connect、patch

根據http協議的設計初衷,不同的方法對資源有不同的操作方式

put :增

delete :刪

post:改

get:查

提示:最常用的是get和post(實際上get和post都能辦到增刪改查)

2.get和post請求                   

要想使用get和post請求跟伺服器進行互動,得先了解乙個概念:引數就是傳遞給伺服器的具體資料,比如登入時的帳號、密碼

get和post對比:get和post的主要區別表現在資料傳遞上

get在請求url後面以?的形式跟上發給伺服器的引數,多個引數之間用&隔開,比如

注意:由於瀏覽器和伺服器對url長度有限制,因此在url後面附帶的引數是有限制的,通常不能超過1kb

post

發給伺服器的引數全部放在請求體中

理論上,post傳遞的資料量沒有限制(具體還得看伺服器的處理能力)

3.get和post的選擇

選擇get和post的建議

(1)如果要傳遞大量資料,比如檔案上傳,只能用post請求

(2)get的安全性比post要差些,如果包含機密\敏感資訊,建議用post

(3)如果僅僅是索取資料(資料查詢),建議使用get

(4)如果是增加、修改、刪除資料,建議使用post

4.ios中傳送http請求的方案

在ios中,常見的傳送http請求(get和post)的解決方案有

(1)蘋果原生(自帶)

nsurlconnection:用法簡單,最古老最經典最直接的一種方案

nsurlsession:ios 7新出的技術,功能比nsurlconnection更加強大

cfnetwork:nsurl*的底層,純c語言

(2)第三方框架

asihttprequest:外號「http終結者」,功能極其強大,可惜早已停止更新

afnetworking:簡單易用,提供了基本夠用的常用功能

建議:為了提高開發效率,企業開發用的基本是第三方框架

5.asi和afn架構對比

說明:afn基於nsurl,asi基於cfhttp,asi的效能更好一些。

標籤: ios開發, 網路篇

iOS開發之 網路 HTTP協議

http的全稱是hypertext transfer protocol,超文字傳輸協議 1.http協議簡介 不管是移動客戶端還是pc端,訪問遠端的網路資源經常使用http協議 獲得大眾點評的 資料 2.http協議的作用 1 規定客戶端和伺服器之間的資料傳輸格式 2 讓客戶端和伺服器能有效地進行資...

iOS開發 HTTP協議詳解

什麼是url url的全稱是uniform resource locator 統一資源定位符 通過1個url,能找到網際網路上唯一的1個資源 url就是資源的位址 位置,網際網路上的每個資源都有乙個唯一的url 超文字傳輸協議,訪問的是遠端的網路資源,格式是http http協議是在網路開發中最常用...

iOS開發 HTTP協議詳解

schema login host port path query string anchor scheme 協議名 如http,https,ftp login 登陸資訊 host 伺服器ip 網域名稱 port http服務的預設埠是80,這種情況下埠號可以省略。如果使用了別的埠,必須指明,例如 ...