IOS-Socket和http連接的區(qū)別

1、Socket連接和Http連接的區(qū)別

簡單來說抒巢,瀏覽的網(wǎng)頁都是以http協(xié)議傳輸?shù)侥愕臑g覽器贫贝,而http是基于socket之上的。socket是一套完成tcp udp協(xié)議的接口蛉谜。

HTTP協(xié)議:簡單對象訪問協(xié)議稚晚,對應(yīng)于應(yīng)用層,HTTP協(xié)議是基于TCP連接的型诚。

? ? ? ? ? ? ? ? ? ? ?TCP協(xié)議:對應(yīng)于傳輸層

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

TCP/IP協(xié)議是傳輸層協(xié)議客燕,主要解決數(shù)據(jù)如何在網(wǎng)絡(luò)中傳輸;而HTTP是應(yīng)用層協(xié)議狰贯,主要解決如何包裝數(shù)據(jù)也搓。

Socket是對TCP/IP協(xié)議的封裝,Socket本身并不是協(xié)議暮现,而是一個調(diào)用接口(API)还绘,通過Socket,我們才能使用TCP/IP協(xié)議栖袋。

HTTP協(xié)議:http連接就是所謂的短連接拍顷,及客戶端向服務(wù)器端發(fā)送一次請求,服務(wù)器端響應(yīng)后連接即會斷掉塘幅。

Socket連接:socket連接就是所謂的長連接昔案,理論上客戶端和服務(wù)器端一旦建立起連接將不會主動斷開;但是由于各種環(huán)境因素可能會是連接斷開电媳,比如說:服務(wù)器端和客戶端主機down了踏揣,網(wǎng)絡(luò)故障,或者兩者之間長時間沒有數(shù)據(jù)傳輸匾乓,網(wǎng)絡(luò)防火墻可能會斷開該連接以釋放網(wǎng)絡(luò)資源捞稿,所以當一個socket連接中沒有數(shù)據(jù)的傳輸,那么為了維持連接需要發(fā)送心跳消息,具體心跳消息格式是開發(fā)者自己定義的娱局。

2彰亥、我們已經(jīng)知道網(wǎng)絡(luò)中的進程是通過socket來通信的,那么什么是socket衰齐?

socket起源于Unix.socket即是一種特殊的文件任斋,一些socket函數(shù)就是對其進行的操作(讀/寫IO、打開耻涛、關(guān)閉)废酷。我們在傳輸數(shù)據(jù)時,可以只使用(傳輸層)TCP/IP協(xié)議抹缕,但是那樣的話澈蟆,如果沒有應(yīng)用層,便無法識別數(shù)據(jù)內(nèi)容歉嗓,如果要是傳輸?shù)臄?shù)據(jù)有意義丰介,則必須使用到應(yīng)用層協(xié)議背蟆,應(yīng)用層協(xié)議有很多鉴分,比如HTTP\FTP\TELENT等,也可以自己定義應(yīng)用層協(xié)議带膀。WEB使用HTTPP協(xié)議作為應(yīng)用層協(xié)議志珍,以封裝HTTP文本信息,然后使用TCP/IP做傳輸層協(xié)議將它發(fā)到網(wǎng)絡(luò)上垛叨。

1)socket是一個針對TCP和UDP編程的接口伦糯,你可以借助它建立TCP連接等等。而TCP和UDP協(xié)議屬于傳輸層嗽元。而HTTP是個應(yīng)用層的協(xié)議敛纲,它實際上也建立在TCP協(xié)議上。(而HTTP是轎車剂癌,提供了封裝或者顯示數(shù)據(jù)的具體形式淤翔;Socket是發(fā)動機,提供了網(wǎng)絡(luò)通信的能力佩谷。)

2)socket是對TCP/IP協(xié)議的封裝旁壮,socket本身并不是協(xié)議,而是一個調(diào)用接口(API)谐檀,通過Socket抡谐,我們才能使用tcp、ip協(xié)議桐猬。Socket的出現(xiàn)只是使得程序員更方便地使用TCP/IP協(xié)議棧而已麦撵,是對TCP/IP協(xié)議的抽象,從而形成了我們知道的一些最基本的函數(shù)接口。

3免胃、利用Socket建立網(wǎng)絡(luò)連接的步驟

建立socket連接至少需要一對套接字五垮,其中一個運行客戶端,稱為ClientSocket杜秸,另一個運行與服務(wù)器端放仗,稱為ServerSocket.

套接字之間的連接過程分為三個步驟:服務(wù)監(jiān)聽,客戶端請求撬碟,連接確認诞挨。

1) 服務(wù)器監(jiān)聽:服務(wù)器套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態(tài)呢蛤,實時監(jiān)控網(wǎng)絡(luò)狀態(tài)惶傻,等待客戶端的連接請求。

2) 客戶端請求:指客戶端的套接字提出連接請求其障,要連接的目標的服務(wù)器的套接字银室。為此,客戶端的套接字必須首先描述它要連接的的服務(wù)器的套接字励翼,指出服務(wù)器套接字的地址 和端口號蜈敢,然后就向服務(wù)器端套接字提出連接請求。

3)

連接確認:當服務(wù)器端套接字監(jiān)聽到或者說接收到客戶端套接字的連接請求時汽抚,就響應(yīng)客戶端套接字的請求抓狭,建立一個新的線程,把服務(wù)器端套接字的描述發(fā)給客戶端造烁,一旦客戶端確認了此描述否过,雙方就正式建立連接。而服務(wù)器端套接字繼續(xù)處于監(jiān)聽狀態(tài)惭蟋,繼續(xù)接收其他客戶端套接字的連接請求苗桂。

4、HTTP協(xié)議詳解

HTTP是一個屬于應(yīng)用層的面向?qū)ο蟮膮f(xié)議告组,由于其簡捷煤伟,快速的方式,適用于分布式超媒體信息系統(tǒng)惹谐。目前在WWW中使用的是HTTP/1.0的第六版持偏,HTTP/1.1的規(guī)范化工作正在進行中。

http(超文本傳輸協(xié)議)是一個基于請求與響應(yīng)模式的氨肌、無狀態(tài)的鸿秆、應(yīng)用層的協(xié)議,吃跚簦基于TCP的連接方式卿叽,HTTP1.1版本中給出一種持續(xù)連接的機制桥胞,絕大多數(shù)Web開發(fā),都是構(gòu)建在HTTP協(xié)議之上的Web應(yīng)用考婴。

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

A 支持客戶贩虾、服務(wù)器模式

B 簡單快速:客戶向服務(wù)器請求服務(wù)時,只需傳送請求方法和路徑沥阱。請求方法常用的有GET/HEAD/POST缎罢。每種方法規(guī)定了客戶與服務(wù)器聯(lián)系的類型不同。由于HTTP協(xié)議簡單考杉,使得HTTP服務(wù)器的程序規(guī)模小策精,因而通信速度很快。

C 靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對象崇棠。正在傳輸額類型由Content-Type加以標記咽袜。

D 無連接:無連接的含義是限制每次連接只處理一個請求。服務(wù)器處理完客戶的請求枕稀,并收到客戶的應(yīng)答后询刹,即斷開連接。采用這種方式可以節(jié)省傳輸時間萎坷。

E 無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議凹联。無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息食铐,則必須重傳匕垫,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面虐呻,在服務(wù)器不需要先前信息時他的應(yīng)答就較快。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末寞秃,一起剝皮案震驚了整個濱河市斟叼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌春寿,老刑警劉巖朗涩,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異绑改,居然都是意外死亡谢床,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門厘线,熙熙樓的掌柜王于貴愁眉苦臉地迎上來识腿,“玉大人,你說我怎么就攤上這事造壮《伤希” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長成箫。 經(jīng)常有香客問我展箱,道長,這世上最難降的妖魔是什么蹬昌? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任混驰,我火速辦了婚禮,結(jié)果婚禮上皂贩,老公的妹妹穿的比我還像新娘账胧。我一直安慰自己,他們只是感情好先紫,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布治泥。 她就那樣靜靜地躺著,像睡著了一般遮精。 火紅的嫁衣襯著肌膚如雪居夹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天本冲,我揣著相機與錄音准脂,去河邊找鬼。 笑死檬洞,一個胖子當著我的面吹牛狸膏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播添怔,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼湾戳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了广料?” 一聲冷哼從身側(cè)響起砾脑,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎艾杏,沒想到半個月后韧衣,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡购桑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年畅铭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勃蜘。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡硕噩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出元旬,到底是詐尸還是另有隱情榴徐,我是刑警寧澤守问,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站坑资,受9級特大地震影響耗帕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜袱贮,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一仿便、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧攒巍,春花似錦嗽仪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至兢孝,卻和暖如春窿凤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背跨蟹。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工雳殊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人窗轩。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓夯秃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親痢艺。 傳聞我的和親對象是個殘疾皇子仓洼,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

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