徹底掌握網(wǎng)絡(luò)通信(一)Http協(xié)議基礎(chǔ)知識(shí)

網(wǎng)絡(luò)通信系列文章序

徹底掌握網(wǎng)絡(luò)通信(一)Http協(xié)議基礎(chǔ)知識(shí)

徹底掌握網(wǎng)絡(luò)通信(二)Apache的HttpClient基礎(chǔ)知識(shí)

徹底掌握網(wǎng)絡(luò)通信(三)Android源碼中HttpClient的在不同版本的使用

徹底掌握網(wǎng)絡(luò)通信(四)Android源碼中HttpClient的發(fā)送框架解析

徹底掌握網(wǎng)絡(luò)通信(五)DefaultRequestDirector解析

徹底掌握網(wǎng)絡(luò)通信(六)HttpRequestRetryHandler解析

徹底掌握網(wǎng)絡(luò)通信(七)ConnectionReuseStrategy,ConnectionKeepAliveStrategy解析

徹底掌握網(wǎng)絡(luò)通信(八)AsyncHttpClient源碼解讀

徹底掌握網(wǎng)絡(luò)通信(九)AsyncHttpClient為什么無法用Fiddler來抓包

徹底掌握網(wǎng)絡(luò)通信(十)AsyncHttpClient如何發(fā)送JSON解析JSON,以及一些其他用法

這是一個(gè)系列文章,主要帶讀者徹底理清httpclient和asynchttpclient环葵。比如在底層他是怎么發(fā)送請(qǐng)求的懂鸵,怎么和socket關(guān)聯(lián)的址貌?consumeContent導(dǎo)致的異掣… …

先補(bǔ)充下基礎(chǔ)知識(shí):

1)HTTP協(xié)議

超文本傳輸協(xié)議(HTTP)是一種通信協(xié)議耻姥,歸屬于應(yīng)用層協(xié)議方庭,主要解決如何包裝數(shù)據(jù)厕吉。它允許將超文本標(biāo)記語言(HTML)文檔從Web服務(wù)器傳送到客戶端的瀏覽器。http協(xié)議是無狀態(tài)的械念,同一個(gè)客戶端的這次請(qǐng)求和上次請(qǐng)求是沒有對(duì)應(yīng)關(guān)系头朱,對(duì)http服務(wù)器來說,它并不知道這兩個(gè)請(qǐng)求來自同一個(gè)客戶端龄减。 為了解決這個(gè)問題项钮, Web程序引入了Cookie機(jī)制來維護(hù)狀態(tài).

2)什么是TCP/IP

TCP/IP是一個(gè)協(xié)議族,由底層的IP協(xié)議和TCP協(xié)議組成的;其全稱為(Transmission Control Protocol/Internet Protocol)即傳輸控制協(xié)議/網(wǎng)間協(xié)議烁巫。

TCP協(xié)議:是一種面向連接的署隘、可靠的、基于字節(jié)流的傳輸層通信協(xié)議亚隙;

IP協(xié)議:將多個(gè)包交換網(wǎng)絡(luò)連接起來磁餐,它在源地址和目的地址之間傳送一種稱之為數(shù)據(jù)包的東西,它還提供對(duì)數(shù)據(jù)大小的重新組裝功能阿弃,以適應(yīng)不同網(wǎng)絡(luò)對(duì)包大小的要求诊霹。

IP不提供可靠的傳輸服務(wù),它不提供端到端的或(路由)結(jié)點(diǎn)到(路由)結(jié)點(diǎn)的確認(rèn)渣淳,對(duì)數(shù)據(jù)沒有差錯(cuò)控制脾还,它只使用報(bào)頭的校驗(yàn)碼,它不提供重發(fā)和流量控制入愧;

3)什么是OSI

OSI(Open System Interconnect)鄙漏,即開放式系統(tǒng)互聯(lián)。 一般都叫OSI參考模型砂客,是ISO(國(guó)際標(biāo)準(zhǔn)化組織)組織在1985年研究的網(wǎng)絡(luò)互連模型

OSI參考模型和TCP/IP網(wǎng)絡(luò)模型

4)什么是HTTP/2

HTTP/2 (原名HTTP/2.0)即超文本傳輸協(xié)議 2.0泥张,是下一代HTTP協(xié)議。在開放互聯(lián)網(wǎng)上HTTP 2.0將只用于https://網(wǎng)址鞠值,而 http://網(wǎng)址將繼續(xù)使用HTTP/1

5)URL詳解

基本格式如下

schema://host[:port#]/path/…/[?query-string][#anchor]

scheme 指定低層使用的協(xié)議(例如:http, https, ftp)

host HTTP服務(wù)器的IP地址或者域名

port# HTTP服務(wù)器的默認(rèn)端口是80媚创,這種情況下端口號(hào)可以省略。如果使用了別的端口彤恶,必須指明

path 訪問資源的路徑

query-string 發(fā)送給http服務(wù)器的數(shù)據(jù)

anchor- 錨

5.1)從上面的URL中可以看出這是一個(gè)典型的Get請(qǐng)求的樣例钞钙,其中scheme即指httpclient,asynchttpclient中的Scheme.java,他表示請(qǐng)求使用的協(xié)議声离,同時(shí)我們也會(huì)使用到SchemeRegistry.java芒炼,該類里面有一個(gè)Map型變量registeredSchemes用于添加scheme

5.2)host的使用我們會(huì)在httpclient,asynchttpclient中的HttpHost.java中得到體現(xiàn)

6)request消息結(jié)構(gòu)和respone消息結(jié)構(gòu)

Request消息分為3部分,第一部分叫Request line, 第二部分叫Request header, 第三部分是body. header和body之間有個(gè)空行术徊;

respone消息分為3部分本刽,第一部分叫Response line, 第二部分叫Response header,第三部分是body. header和body之間也有個(gè)空行

7)HTTP協(xié)議是無狀態(tài)的和Connection: keep-alive的區(qū)別

無狀態(tài)是指協(xié)議對(duì)于事務(wù)處理沒有記憶能力赠涮,同一個(gè)客戶端的這次請(qǐng)求和上次請(qǐng)求是沒有對(duì)應(yīng)關(guān)系子寓,對(duì)http服務(wù)器來說,它并不知道這兩個(gè)請(qǐng)求來自同一個(gè)客戶端笋除;

無狀態(tài)不代表HTTP不能保持TCP連接斜友,更不能代表HTTP使用的是UDP協(xié)議(無連接)

從HTTP/1.1起,默認(rèn)都開啟了Keep-Alive垃它,保持連接特性鲜屏,簡(jiǎn)單地說烹看,當(dāng)一個(gè)網(wǎng)頁(yè)打開完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接不會(huì)關(guān)閉洛史,如果客戶端再次訪問這個(gè)服務(wù)器上的網(wǎng)頁(yè)惯殊,會(huì)繼續(xù)使用這一條已經(jīng)建立的連接

Keep-Alive不會(huì)永久保持連接,它有一個(gè)保持時(shí)間也殖,可以在不同的服務(wù)器軟件(如Apache)中設(shè)定這個(gè)時(shí)間

---------------------

作者:yi_master

來源:CSDN

原文:https://blog.csdn.net/yi_master/article/details/79358920?utm_source=copy

版權(quán)聲明:本文為博主原創(chuàng)文章靠胜,轉(zhuǎn)載請(qǐng)附上博文鏈接!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末毕源,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子陕习,更是在濱河造成了極大的恐慌霎褐,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件该镣,死亡現(xiàn)場(chǎng)離奇詭異冻璃,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)损合,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門省艳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嫁审,你說我怎么就攤上這事跋炕。” “怎么了律适?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵辐烂,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我捂贿,道長(zhǎng)纠修,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任厂僧,我火速辦了婚禮扣草,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘颜屠。我一直安慰自己辰妙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布汽纤。 她就那樣靜靜地躺著上岗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蕴坪。 梳的紋絲不亂的頭發(fā)上肴掷,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天敬锐,我揣著相機(jī)與錄音,去河邊找鬼呆瞻。 笑死台夺,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的痴脾。 我是一名探鬼主播颤介,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼赞赖!你這毒婦竟也來了滚朵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤前域,失蹤者是張志新(化名)和其女友劉穎辕近,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匿垄,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡移宅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了椿疗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漏峰。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖届榄,靈堂內(nèi)的尸體忽然破棺而出浅乔,到底是詐尸還是另有隱情,我是刑警寧澤痒蓬,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布童擎,位于F島的核電站,受9級(jí)特大地震影響攻晒,放射性物質(zhì)發(fā)生泄漏顾复。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一鲁捏、第九天 我趴在偏房一處隱蔽的房頂上張望芯砸。 院中可真熱鬧,春花似錦给梅、人聲如沸假丧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)包帚。三九已至,卻和暖如春运吓,著一層夾襖步出監(jiān)牢的瞬間渴邦,已是汗流浹背疯趟。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谋梭,地道東北人信峻。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像瓮床,于是被迫代替她去往敵國(guó)和親盹舞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

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