iOS HTTP總結(jié)

一、HTTP請求方式

HTTP超文本傳輸協(xié)議:是短連接,是客戶端主動發(fā)送請求笆豁,服務(wù)器作出響應(yīng),響應(yīng)之后服務(wù)器斷開赤赊。HTTP屬于應(yīng)用層面向?qū)ο髤f(xié)議闯狱,HTTP有兩類報(bào)文:請求報(bào)文和相應(yīng)報(bào)文。
請求報(bào)文包含:請求行录豺、請求頭、空行、請求數(shù)據(jù)四部分組成。
響應(yīng)報(bào)文包含:狀態(tài)行、消息報(bào)文统求、響應(yīng)正文三部分組成另假。
通常,HTTP請求方式有三種凌受,分別是:POST智蝠、GET、HEAD于宙。其中POST和GET用于數(shù)據(jù)發(fā)送。
1宵蛀、POST:它將發(fā)送的數(shù)據(jù)單獨(dú)放在一個(gè)流中進(jìn)行發(fā)送,而不是附加到URL地址后面梧宫,這樣做的好處是這些數(shù)據(jù)不會出現(xiàn)在URL地址中接谨。
2、GET:它將發(fā)送的數(shù)據(jù)直接添加到URL后面祟敛,用&鏈接疤坝,這樣的好處是不用另外的數(shù)據(jù)流來發(fā)送這些數(shù)據(jù),但是缺點(diǎn)是將用戶信息暴露出來了馆铁,不安全跑揉。
3、HEAD:它是請求資源的元數(shù)據(jù)方法埠巨。

二历谍、HTTP定義了與服務(wù)器交互的不同的方法,最基本的方法有辣垒?

1望侈、URL全程是資源描述符,我們可以這樣認(rèn)為:一個(gè)URL地址勋桶,它用于一個(gè)網(wǎng)絡(luò)上的資源脱衙,而HTTP中的GET、POST例驹、PUT捐韩、DELETE就對應(yīng)著這個(gè)資源的查、改鹃锈、增荤胁、刪四個(gè)操作。
2屎债、GET一般用于獲取/查詢資源信息仅政,而POST一般用于更新資源信息垢油。

三、socket簡介

1圆丹、socket是基于TCP/IP協(xié)議滩愁,它是一個(gè)可以連通網(wǎng)絡(luò)上不同計(jì)算機(jī)程序之間的管道,把數(shù)據(jù)從管道A端放進(jìn)去辫封,則會從管道B惊楼、C......等端冒出來。管道的端口由機(jī)器的IP和程序所使用的端口號來確認(rèn)秸讹。
2、socket可以支持?jǐn)?shù)據(jù)的發(fā)送和接收雅倒,它會定義一種稱為套接字的變量璃诀,發(fā)送數(shù)據(jù)的時(shí)候首先創(chuàng)建套接字,然后使用該套接字的send to等方法對準(zhǔn)某個(gè)IP/端口蔑匣,進(jìn)行數(shù)據(jù)發(fā)送劣欢;接收端口也首先創(chuàng)建套接字,然后將該套接字綁定到一個(gè)IP/端口上裁良,所有發(fā)向此端口的數(shù)據(jù)會被該套接字的recv等函數(shù)讀出凿将。和讀出文件中的數(shù)據(jù)一樣。
3价脾、TCP/IP的socket提供三種套接字:流式套接字牧抵、數(shù)據(jù)報(bào)式套接字、原始套接字侨把。
4犀变、常用的第三方庫:AsyncScoket。

四秋柄、APP需要加載大量的數(shù)據(jù)获枝,給服務(wù)器發(fā)送請求,但是服務(wù)器卡住了骇笔,請問怎么解決省店?

1、設(shè)置請求超時(shí)笨触。
2懦傍、給用戶提示請求超時(shí)。
3旭旭、根據(jù)用戶操作再次請求數(shù)據(jù)谎脯。

五、HTTP通信的發(fā)送請求持寄、接收相應(yīng)包含哪些內(nèi)容源梭?

一個(gè)請求包含請求行娱俺、請求頭、請求體废麻。

1荠卷、請求行:包含HTTP協(xié)議版本、狀態(tài)碼烛愧、狀態(tài)英文名稱HTTP/1.1 200 ok
2油宜、請求頭:對客戶端的環(huán)境描述、客戶端請求的主機(jī)地址等信息怜姿。
3慎冤、請求體:客戶端發(fā)送給服務(wù)器的具體數(shù)據(jù),比如文件數(shù)據(jù)沧卢。

一個(gè)響應(yīng)包括:狀態(tài)行蚁堤、響應(yīng)頭、實(shí)體內(nèi)容但狭。

1披诗、狀態(tài)行:包含HTTP協(xié)議版本、狀態(tài)碼立磁、狀態(tài)英文名:HTTP/1.1 200 ok
2呈队、響應(yīng)頭:包含對服務(wù)器的描述、對返回?cái)?shù)據(jù)的描述唱歧。(服務(wù)器類型宪摧、返回?cái)?shù)據(jù)類型、返回?cái)?shù)據(jù)長度迈喉、響應(yīng)時(shí)間)
3绍刮、實(shí)體內(nèi)容:服務(wù)器返回給客戶端的具體數(shù)據(jù),比如文件數(shù)據(jù)挨摸。


POST和GET的區(qū)別

六孩革、TCP和UDP的區(qū)別

1、UDP是用戶數(shù)據(jù)報(bào)協(xié)議:主要用在實(shí)時(shí)性相對較高以及對質(zhì)量相對較弱的地方得运,但面對現(xiàn)在高質(zhì)量的線路膝蜈,不容易丟包除非是在一些擁塞的情況下,如流媒體熔掺。

2饱搏、TCP是傳輸控制協(xié)議:是面向連接的,可靠性高置逻,有良好的擁塞控制機(jī)制推沸,如http、ftp、telent等鬓催。
TCP&UDP的區(qū)別

七肺素、什么是三次握手和四次揮手

更好地回答:

1、初始狀態(tài):剛開始客戶端處于close狀態(tài)宇驾,服務(wù)店處于listen狀態(tài)倍靡。
2、然后课舍,第一次握手塌西,客戶端給服務(wù)端發(fā)送一個(gè)SYN報(bào)文,并指明客戶端的初始化序列號ISN(c)筝尾,此時(shí)客戶端進(jìn)入SYN_Send狀態(tài)捡需。
3、第二次握手筹淫,服務(wù)端收到客戶端的SYN報(bào)文之后栖忠,會以自己的SYN報(bào)文作為應(yīng)答,并且指定了自己的初始化序列號ISN(c)贸街,同時(shí)會把客戶端的ISN+1作為ACK的值,表示自己收到了客戶端的SYN狸相,此時(shí)服務(wù)器處于SYN_REVD的狀態(tài)薛匪。
4、第三次握手脓鹃,客戶端收到SYN報(bào)文之后逸尖,會發(fā)送一個(gè)ACK 報(bào)文,當(dāng)然瘸右,也一樣把服務(wù)器的ISN+1作為ACK的值娇跟,標(biāo)識已經(jīng)收到了服務(wù)端的SYN報(bào)文,此時(shí)客戶端處于establised(已建立)狀態(tài)太颤。
5苞俘、服務(wù)器收到客戶端的ACK報(bào)文之后,也處于establised狀態(tài)龄章。

三次握手的作用:

1吃谣、確認(rèn)雙方的接受能力、發(fā)送能力是否正常做裙。
2岗憋、制定自己的初始化序列號,為后面的可靠傳輸做準(zhǔn)備锚贱。
3仔戈、如果是HTTPS協(xié)議的話,三次握手過程中還會有數(shù)字證書的驗(yàn)證和加密密鑰的生成。

初始化序列號ISN是非固定的监徘,防止攻擊者猜出來晋修。

什么是半連接隊(duì)列?

第一次握手之后耐量,服務(wù)端處于SYN_RCVD狀態(tài)飞蚓,此時(shí)雙方還沒有完全建立連接,服務(wù)器會把此種狀態(tài)下的請求連接放到一個(gè)隊(duì)列里廊蜒,我們把這種隊(duì)列稱之為半連接隊(duì)列趴拧。

握手期間是否可以攜帶數(shù)據(jù)?

第一次第二次握手不可以攜帶數(shù)據(jù)山叮,防止有人惡意攻擊著榴。
第三次握手可以攜帶數(shù)據(jù)。因?yàn)橐呀?jīng)建立連接了

1屁倔、三次握手實(shí)現(xiàn)過程
第一次握手:建立連接時(shí)脑又,客戶端發(fā)送同步序列編號到服務(wù)器,并進(jìn)入發(fā)送狀態(tài)锐借,等待服務(wù)器的確認(rèn)问麸。
第二次握手:服務(wù)器收到同步序列編號,確認(rèn)并同時(shí)自己也發(fā)送一個(gè)同步序列編號+確認(rèn)標(biāo)志钞翔,此時(shí)服務(wù)器進(jìn)入等待狀態(tài)严卖。
第三次握手:客戶端收到服務(wù)器發(fā)送的包,并向服務(wù)器發(fā)送確認(rèn)標(biāo)志布轿,隨后連接成功哮笆。
注意:是在鏈接成功之后再進(jìn)行數(shù)據(jù)傳輸。
2汰扭、四次揮手
第一次:客戶端向服務(wù)器發(fā)送一個(gè)帶有結(jié)束標(biāo)記的報(bào)文稠肘。
第二次:服務(wù)器收到報(bào)文之后,向客戶端發(fā)送一個(gè)確認(rèn)序號萝毛,同時(shí)通知自己相應(yīng)的程序项阴,對方要求關(guān)閉鏈接。
第三次:服務(wù)器向客戶端發(fā)送一個(gè)帶有結(jié)束標(biāo)記的報(bào)文笆包。
第四次:客戶端收到報(bào)文后鲁冯,向服務(wù)器發(fā)送一個(gè)確認(rèn)序號。鏈接關(guān)閉色查。

八薯演、JSON和XML的區(qū)別?

1、可讀性:基本相同秧了,XML的可讀性比較好跨扮。
2、可擴(kuò)展性:都有很好的可擴(kuò)展性。
3衡创、編碼難度:JSON編碼比較容易帝嗡。
4、解碼難度:JSON解碼難度基本為零璃氢,XML要考慮子節(jié)點(diǎn)和父節(jié)點(diǎn)哟玷。
5、數(shù)據(jù)體積:JSON體積較小一也,傳輸速度更快巢寡。
6、數(shù)據(jù)交互:JSON和JavaScript交互更加方便椰苟。
7抑月、數(shù)據(jù)描述:XML對數(shù)據(jù)的描述性更好。

九舆蝴、HTTP和socket的區(qū)別谦絮。

1、HTTP短連接洁仗,客戶端主動發(fā)送請求层皱,服務(wù)端才能相應(yīng),一次請求完畢后赠潦,斷開鏈接奶甘,以節(jié)省資源。服務(wù)端不能主動給客戶端相應(yīng)(除非采取HTTP長連接技術(shù))祭椰。
2、socker主要使用“套接字”鏈接疲陕,并沒有規(guī)定連接后斷開方淤,所以客戶端和服務(wù)端可以保持長連接,雙方都可以主動發(fā)送數(shù)據(jù)蹄殃。一般應(yīng)用在股票開發(fā)携茂、游戲等即時(shí)性很強(qiáng)且發(fā)送數(shù)量比較大的場合。

十诅岩、HTTP和HTTPS的區(qū)別

定義:HTTPS(全稱:Hypertext Transfer Protocol over Secure Socket Layer)讳苦,是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版吩谦。
1鸳谜、HTTPS是在HTTP上加入SSL層,HTTPS的安全基礎(chǔ)是SSL式廷。
2咐扭、HTTP是超文本傳輸協(xié)議,信息是明文傳輸,HTTPS則是SSL加密蝗肪。
3袜爪、HTTP連接的端口是80,HTTPS是443薛闪。
4辛馆、HTTP連接時(shí)無狀態(tài)的,HTTPS是由SSL+HTTP協(xié)議構(gòu)成的可進(jìn)行加密傳輸豁延、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議昙篙。
5、https協(xié)議需要到ca申請證書术浪,一般免費(fèi)證書很少瓢对,需要交費(fèi)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末胰苏,一起剝皮案震驚了整個(gè)濱河市硕蛹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌硕并,老刑警劉巖法焰,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異倔毙,居然都是意外死亡埃仪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門陕赃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來卵蛉,“玉大人,你說我怎么就攤上這事么库∩邓浚” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵诉儒,是天一觀的道長葡缰。 經(jīng)常有香客問我,道長忱反,這世上最難降的妖魔是什么泛释? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮温算,結(jié)果婚禮上怜校,老公的妹妹穿的比我還像新娘。我一直安慰自己注竿,他們只是感情好韭畸,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布宇智。 她就那樣靜靜地躺著,像睡著了一般胰丁。 火紅的嫁衣襯著肌膚如雪随橘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天锦庸,我揣著相機(jī)與錄音机蔗,去河邊找鬼。 笑死甘萧,一個(gè)胖子當(dāng)著我的面吹牛萝嘁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播扬卷,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼牙言,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了怪得?” 一聲冷哼從身側(cè)響起咱枉,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎徒恋,沒想到半個(gè)月后蚕断,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡入挣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年亿乳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片径筏。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡葛假,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出滋恬,到底是詐尸還是另有隱情聊训,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布夷恍,位于F島的核電站,受9級特大地震影響媳维,放射性物質(zhì)發(fā)生泄漏酿雪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一侄刽、第九天 我趴在偏房一處隱蔽的房頂上張望指黎。 院中可真熱鬧,春花似錦州丹、人聲如沸醋安。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吓揪。三九已至亲怠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間柠辞,已是汗流浹背团秽。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叭首,地道東北人习勤。 一個(gè)月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像焙格,于是被迫代替她去往敵國和親图毕。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理眷唉,服務(wù)發(fā)現(xiàn)予颤,斷路器,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • 前言 簡單介紹: // OSI(開放式系統(tǒng)互聯(lián)), 由ISO(國際化標(biāo)準(zhǔn)組織)制定 // 1. 應(yīng)用層 // 2....
    GitHubPorter閱讀 1,234評論 2 4
  • 參考:http://www.2cto.com/net/201611/569006.html TCP HTTP UD...
    F麥子閱讀 2,939評論 0 14
  • 6.1 公鑰密鑰加密原理 6.1.1 基礎(chǔ)知識 密鑰:一般就是一個(gè)字符串或數(shù)字笆焰,在加密或者解密時(shí)傳遞給加密/解密算...
    AndroidMaster閱讀 4,004評論 1 8
  • STM32F429三大類定時(shí)器:高級控制、通用见坑、基本嚷掠;計(jì)數(shù)類型:遞增、遞減荞驴、遞增或遞減不皆;預(yù)分頻系數(shù):1-65536...
    王春禹閱讀 227評論 0 0