iOS開發(fā)--網(wǎng)絡(luò)相關(guān)知識(shí)

1.HTTP協(xié)議詳解

HTTP是一個(gè)屬于應(yīng)用層的面向?qū)ο蟮膮f(xié)議竞漾,由于其簡(jiǎn)潔放钦,快速的方式,是用于分布式超媒體信息系統(tǒng)蜡峰。目前在www(萬(wàn)維網(wǎng))中使用的是HTTP/1.0的第六版了袁,HTTP/1.1的規(guī)范化工作正在進(jìn)行之中。

HTTP(超文本傳輸協(xié)議)是一個(gè)基于請(qǐng)求與響應(yīng)模式的湿颅、無(wú)狀態(tài)的载绿、應(yīng)用層的協(xié)議,秤秃剑基于TCP的連接方式崭庸,HTTP1.1版本中給出一種持續(xù)連接的機(jī)制,絕大多數(shù)的Web開發(fā)谊囚,都是構(gòu)建在HTTP協(xié)議之上的Web應(yīng)用怕享。

HTTP協(xié)議的主要特點(diǎn)可概括如下:

(1)支持客戶/服務(wù)器模式。

(2)簡(jiǎn)單快速:客戶向服務(wù)器請(qǐng)求服務(wù)時(shí)镰踏,只需傳送請(qǐng)求方法和路徑函筋。請(qǐng)求方法常用的有GET、HEAD奠伪、POST跌帐。每種方法規(guī)定了客戶與服務(wù)器聯(lián)系的類型不同。由于HTTP協(xié)議簡(jiǎn)單绊率,使得HTTP服務(wù)器的程序規(guī)模小谨敛,因而通信速度很快。

(3)靈活:HTTP允許傳輸任何類型的數(shù)據(jù)對(duì)象滤否。正在傳輸?shù)念愋陀蒀ontent-Type加以標(biāo)記脸狸。

(4)無(wú)連接:無(wú)連接的含義是限制每次連接只處理一個(gè)請(qǐng)求,服務(wù)器處理完客戶的請(qǐng)求藐俺,并收到客戶的應(yīng)答后炊甲,即斷開連接。采用這種方式可以節(jié)省傳輸時(shí)間欲芹。

(5)無(wú)狀態(tài):HTTP協(xié)議是無(wú)狀態(tài)協(xié)議蜜葱。無(wú)狀態(tài)是指協(xié)議對(duì)于事務(wù)處理沒有記憶能力,缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息耀石,則它必須重傳牵囤,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面滞伟,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快揭鳞。

2.TCP和UDP的區(qū)別(PS:TCP和UDP都是傳輸層協(xié)議)

TCP(Transmission Control Protocol,傳輸控制協(xié)議)是基于連接的協(xié)議梆奈,也就是說野崇,在正式收發(fā)數(shù)據(jù)前,必須和對(duì)方建立可靠的連接亩钟。一個(gè)TCP連接必須要經(jīng)過三次“對(duì)話”(也稱三次“握手”)才能建立起來(lái)乓梨,這三次對(duì)話的簡(jiǎn)單過程為:①主機(jī)A向主機(jī)B發(fā)出連接請(qǐng)求數(shù)據(jù)包鳖轰;②主機(jī)B向主機(jī)A發(fā)送同意連接和要求同步(同步就是兩臺(tái)主機(jī)一個(gè)在發(fā)送,一個(gè)在接收扶镀,協(xié)調(diào)工作)的數(shù)據(jù)包蕴侣;③主機(jī)A再發(fā)出一個(gè)數(shù)據(jù)包確認(rèn)主機(jī)B的要求同步:“我現(xiàn)在發(fā)送,你來(lái)接收吧臭觉!”昆雀,這是三次對(duì)話。三次“對(duì)話”的目的是使數(shù)據(jù)包的發(fā)送和接收同步蝠筑,經(jīng)過三次“對(duì)話”之后狞膘,主機(jī)A才向主機(jī)B正式發(fā)送數(shù)據(jù)。

UDP(User Data Protocol什乙,用戶數(shù)據(jù)報(bào)協(xié)議)是與TCP相對(duì)應(yīng)的協(xié)議挽封。它是面向非連接的協(xié)議,它不與對(duì)方建立連接臣镣,而是直接就把數(shù)據(jù)包發(fā)送過去场仲。

區(qū)別:

(1)是否連接:TCP面向連接,UDP面向非連接退疫。

(2)傳輸可靠性:TCP可靠渠缕,UDP不可靠。

(3)應(yīng)用場(chǎng)合:TCP傳輸大量數(shù)據(jù)褒繁,UDP傳輸少量數(shù)據(jù)亦鳞。

(4)速度:TCP慢,UDP快棒坏。

3.服務(wù)器連接的三次握手

在TCP/IP協(xié)議中燕差,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立一個(gè)連接坝冕。

(1)第一次握手:建立連接時(shí)徒探,客戶端發(fā)送連接請(qǐng)求到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài)喂窟,等待服務(wù)器確認(rèn)测暗;

(2)第二次握手:服務(wù)器收到客戶端連接請(qǐng)求,向客戶端發(fā)送允許連接應(yīng)答磨澡,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài)碗啄;

(3)第三次握手:客戶端收到服務(wù)器的允許連接應(yīng)答,向服務(wù)器發(fā)送確認(rèn)稳摄,客戶端和服務(wù)器進(jìn)入通信狀態(tài)稚字,完成三次握手

PS:所謂三次握手就是要有三次連接信息的發(fā)送/接收過程。TCP連接的建立需要進(jìn)行三次連接信息的發(fā)送/接收。

4.論Socket和HTTP協(xié)議的區(qū)別

(1)概念

HTTP:超文本傳輸協(xié)議胆描,首先它是一個(gè)協(xié)議瘫想,并且是基于TCP/IP協(xié)議基礎(chǔ)之上的應(yīng)用層協(xié)議。TCP/IP協(xié)議是傳輸層協(xié)議昌讲,主要解決數(shù)據(jù)如何在網(wǎng)絡(luò)中傳輸国夜。HTTP是基于請(qǐng)求-響應(yīng)形式并且是短連接(即客戶端向服務(wù)器端發(fā)送一次請(qǐng)求,服務(wù)器端響應(yīng)后連接即會(huì)斷掉),并且是無(wú)狀態(tài)的協(xié)議。

Socket:Socket不屬于協(xié)議范疇字逗,而是一個(gè)調(diào)用接口(API)狈网,Socket是對(duì)TCP/IP協(xié)議的封裝,通過調(diào)用Socket才能使用TCP/IP協(xié)議饶碘。Socket連接是長(zhǎng)連接目尖,理論上客戶端和服務(wù)器端一旦建立連接將不會(huì)主動(dòng)斷開此連接。Socket連接屬于請(qǐng)求-響應(yīng)形式扎运,服務(wù)端可主動(dòng)將消息推送給客戶端瑟曲。

(2)區(qū)別

簡(jiǎn)單說,瀏覽的網(wǎng)頁(yè)(網(wǎng)址以http://開頭)都是HTTP協(xié)議傳輸?shù)侥愕臑g覽器的豪治,而HTTP是基于Socket之上的洞拨。Socket是一套完成的TCP、UDP協(xié)議的接口负拟。

HTTP協(xié)議:簡(jiǎn)單對(duì)象訪問協(xié)議烦衣,對(duì)應(yīng)于應(yīng)用層,HTTP協(xié)議是基于TCP連接的掩浙。

TCP協(xié)議:對(duì)應(yīng)于傳輸層花吟。

IP協(xié)議:對(duì)應(yīng)于網(wǎng)絡(luò)層。

TCP/IP是傳輸層協(xié)議厨姚,主要解決數(shù)據(jù)如何在網(wǎng)絡(luò)中傳輸衅澈;而HTTP是應(yīng)用層協(xié)議,主要解決如何包裝數(shù)據(jù)谬墙。

Socket是對(duì)TCP/IP協(xié)議的封裝今布,Socket本身并不是協(xié)議,而是調(diào)用接口(API)拭抬,通過Socket险耀,我們才能使用TCP/IP協(xié)議。

5.利用Socket建立網(wǎng)絡(luò)連接的步驟

建立Socket連接過程分為三個(gè)步驟:服務(wù)器監(jiān)聽玖喘,客戶端請(qǐng)求甩牺,連接確認(rèn)。

(1)服務(wù)器監(jiān)聽:服務(wù)器端套接字并不定位具體的客戶端套接字累奈,而是處于等待連接的狀態(tài)贬派,實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài)急但,等待客戶端的連接請(qǐng)求。

(2)客戶端請(qǐng)求:指客戶端的套接字提出連接請(qǐng)求搞乏,要連接到目標(biāo)是服務(wù)器端的套接字波桩。為此,客戶端的套接字必須首先描述它要連接的服務(wù)器的套接字请敦,支出服務(wù)器端套接字的地址和端口號(hào)镐躲,然后就向服務(wù)器端套接字提出連接請(qǐng)求。

(3)連接確認(rèn):當(dāng)服務(wù)器端套接字監(jiān)聽到或者說接收到客戶端套接字的連接請(qǐng)求時(shí)侍筛,就相應(yīng)客戶端套接字的請(qǐng)求萤皂,建立一個(gè)新的線程,把服務(wù)器端套接字的描述發(fā)給客戶端匣椰,一旦客戶端確認(rèn)了此描述裆熙,雙方就正式建立連接。而服務(wù)器端套接字繼續(xù)處于監(jiān)聽狀態(tài)禽笑,繼續(xù)接受其他客戶端套接字的連接請(qǐng)求入录。

PS:套接字

源IP地址和目的IP地址以及源端口號(hào)和目的端口號(hào)的組合稱為套接字。其用于標(biāo)識(shí)客戶端請(qǐng)求的服務(wù)器和服務(wù)佳镜。

它是網(wǎng)絡(luò)通信過程中端點(diǎn)的抽象表示僚稿,包含進(jìn)行網(wǎng)絡(luò)通信必須的五種信息:連接使用的協(xié)議,本地主機(jī)的IP地址蟀伸,本地進(jìn)程的協(xié)議端口蚀同,遠(yuǎn)地主機(jī)的IP地址,遠(yuǎn)地進(jìn)程的協(xié)議端口望蜡。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末唤崭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子脖律,更是在濱河造成了極大的恐慌谢肾,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件小泉,死亡現(xiàn)場(chǎng)離奇詭異芦疏,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)微姊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門酸茴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人兢交,你說我怎么就攤上這事薪捍。” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵酪穿,是天一觀的道長(zhǎng)凳干。 經(jīng)常有香客問我,道長(zhǎng)被济,這世上最難降的妖魔是什么救赐? 我笑而不...
    開封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮只磷,結(jié)果婚禮上经磅,老公的妹妹穿的比我還像新娘。我一直安慰自己钮追,他們只是感情好预厌,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著畏陕,像睡著了一般配乓。 火紅的嫁衣襯著肌膚如雪仿滔。 梳的紋絲不亂的頭發(fā)上惠毁,一...
    開封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音崎页,去河邊找鬼鞠绰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛飒焦,可吹牛的內(nèi)容都是我干的蜈膨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼牺荠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼翁巍!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起休雌,我...
    開封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤灶壶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后杈曲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驰凛,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年担扑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了恰响。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涌献,死狀恐怖胚宦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤枢劝,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布绞灼,位于F島的核電站,受9級(jí)特大地震影響呈野,放射性物質(zhì)發(fā)生泄漏低矮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一被冒、第九天 我趴在偏房一處隱蔽的房頂上張望军掂。 院中可真熱鬧,春花似錦昨悼、人聲如沸蝗锥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)终议。三九已至,卻和暖如春葱蝗,著一層夾襖步出監(jiān)牢的瞬間穴张,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工两曼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留皂甘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓悼凑,卻偏偏與公主長(zhǎng)得像偿枕,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子户辫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 參考:http://www.2cto.com/net/201611/569006.html TCP HTTP UD...
    F麥子閱讀 2,949評(píng)論 0 14
  • 第一部分、概念的理解1膘茎、什么是Socket桃纯?Socket又稱之為“套接字”,是系統(tǒng)提供的用于網(wǎng)絡(luò)通信的方法披坏。它的實(shí)...
    Hevin_Chen閱讀 2,454評(píng)論 0 5
  • 1态坦、OC中創(chuàng)建線程的方法是什么?如果指定在主線程中執(zhí)行代碼棒拂?如何延時(shí)執(zhí)行代碼伞梯∶登猓【難度系數(shù)★★】 1)創(chuàng)建線程的方法...
    木旁_G閱讀 1,959評(píng)論 2 16
  • 前面文章談過紅利ETF漾峡,很多朋友很感興趣。借此機(jī)會(huì)喻旷,書生跟大家談?wù)劇案呦毙凸善薄?一生逸、買股票可以拿分紅 上證...
    布衣書生走天下閱讀 319評(píng)論 0 1
  • 時(shí)間過的真快,轉(zhuǎn)眼間且预,你已經(jīng)回來(lái)一年了槽袄。那些奔波的日子,還清晰依然锋谐。幾年的習(xí)慣遍尺,突然改變,竟有些不適應(yīng)涮拗。 那個(gè)冬日...
    微笑的小魚閱讀 247評(píng)論 0 0