-
【整理前人筆記】 多路復(fù)用機(jī)制:HttpEngine(Http引擎)每次請(qǐng)求數(shù)據(jù)時(shí),都會(huì)先調(diào)用nextConnection(),如果返回一個(gè)連接對(duì)象,則就調(diào)用sendRequest()發(fā)送一個(gè)請(qǐng)求。如果nextConnection()返回為null,就會(huì)調(diào)用createNextConnection()創(chuàng)建一個(gè)連接,然后去發(fā)送請(qǐng)求。 重連機(jī)制:通過一個(gè)while的循環(huán),判斷條件是當(dāng)前狀態(tài)是否連接,如果沒有連接,就會(huì)調(diào)用getResquese()發(fā)送請(qǐng)求,緊接著HttpEngine調(diào)用recover(),進(jìn)行重連操作,直到當(dāng)前連接狀態(tài)為已連接,結(jié)束循環(huán)。 大概流程是這樣的: 1.用構(gòu)造者模式去創(chuàng)建一個(gè)請(qǐng)求(Request) okhttp普遍使用構(gòu)建者模式開發(fā) Request.Builder 2.添加到分發(fā)器中(Dispatcher) 3.由分發(fā)器分發(fā)到httpEngine,如果這個(gè)請(qǐng)求在之前有緩存過,那么直接返回緩存的Response,否者創(chuàng)建連接。 (HttpEngine首先調(diào)用nextConnection(),獲取不到Connection 才會(huì)調(diào)用createNextConnection()) 4.從連接池中獲得一個(gè)連接,進(jìn)行網(wǎng)絡(luò)請(qǐng)求(...)查看全部
-
- HTTP出現(xiàn)及發(fā)展 URL Status Response Code Protocal Method Kept Alive Content-Type Client Address Remote Address 請(qǐng)求頭 a.表明本次請(qǐng)求的客戶端 b.本次請(qǐng)求所使用的cookie c.本次請(qǐng)求希望返回的數(shù)據(jù)類型 d.本次請(qǐng)求是否采用數(shù)據(jù)壓縮等一系列設(shè)置 請(qǐng)求體 a.指定本次請(qǐng)求所使用的方法 b.主要用來攜帶本次請(qǐng)求的參數(shù) 響應(yīng)頭 a.服務(wù)器標(biāo)識(shí) b.狀態(tài)碼 c.內(nèi)容編碼 d.cookie返回給客戶端的cookie等等 響應(yīng)體 a.主要是本次請(qǐng)求返回的數(shù)據(jù) 工作流程 a.客戶機(jī)與服務(wù)器需要建立連接 b.建立連接后,客戶機(jī)發(fā)送一個(gè)請(qǐng)求給服務(wù)器 c.服務(wù)器接到請(qǐng)求后,給予相應(yīng)的響應(yīng)信息 d.客戶端接收服務(wù)器所返回的信息,連接斷開 - HTTP優(yōu)勢(shì) 簡(jiǎn)單,快速 靈活 無連接 無狀態(tài) - HTTP2.0以及SPDY介紹 SPDY是兼容性協(xié)議 多路復(fù)用請(qǐng)求 對(duì)請(qǐng)求劃分優(yōu)先級(jí) 壓縮請(qǐng)求頭 HTTP2.0是基于SPDY,IETF定制的新一代HTTP協(xié)議 更安全的SSL - okhttp優(yōu)勢(shì) 為Android客戶端支持HTTP2.0提供途徑,由square團(tuán)隊(duì)開發(fā); 支持SPDY,HTTP2.0共享同一個(gè)socket來處理同一個(gè)服務(wù)器的所有請(qǐng)求; 如果SPDY不可用,則通過連接池來減少請(qǐng)求延時(shí); 無縫的支持GZIP來減少數(shù)據(jù)流量; 緩存響應(yīng)數(shù)據(jù)來減少重復(fù)的網(wǎng)絡(luò)請(qǐng)求; 可以從很多常用的連接問題中自動(dòng)恢復(fù); 使用起來很簡(jiǎn)單。查看全部
-
求源碼查看全部
-
1.http協(xié)議結(jié)構(gòu) (1)請(qǐng)求頭 本次請(qǐng)求的客戶端(瀏覽器類型)、 請(qǐng)求所使用的cookie、希望返回的數(shù)據(jù)類型(json、string)、是否采用數(shù)據(jù)壓縮 (2)請(qǐng)求體 本次請(qǐng)求所使用的方法(get\post)、攜帶本次請(qǐng)求的參數(shù) (3)響應(yīng)頭 服務(wù)器標(biāo)識(shí)、狀態(tài)碼(201,303,404)、內(nèi)容編碼、返回給客戶端的編碼 (4)響應(yīng)體 本次請(qǐng)求所返回的數(shù)據(jù) 2.okhttp優(yōu)勢(shì) (1).支持SPDY,http2.0共享同一個(gè)Socket來處理 同一個(gè)服務(wù)器的所有請(qǐng)求 (2).如果SPDY不可用,則通過連接池來減少請(qǐng)求延時(shí) (3).無縫的支持GZIP來減少數(shù)據(jù)流量 (4).緩存響應(yīng)數(shù)據(jù)來減少重復(fù)的網(wǎng)絡(luò)請(qǐng)求 (5).可以從很多常用的連接問題中自動(dòng)恢復(fù) (6).使用起來非常簡(jiǎn)單查看全部
-
多路復(fù)用機(jī)制查看全部
-
wenjianshangchuan查看全部
-
自動(dòng)重連機(jī)制查看全部
-
多路復(fù)用機(jī)制查看全部
-
okhttp的文字流程圖查看全部
-
大概流程是這樣的: 1.用構(gòu)造者模式去創(chuàng)建一個(gè)請(qǐng)求(Request) 2.添加到分發(fā)器中(Dispatcher) 3.由分發(fā)器分發(fā)到httpEngine,如果這個(gè)請(qǐng)求在之前有緩存過,那么直接返回緩存的Response,否者創(chuàng)建連接。 4.從連接池中獲得一個(gè)連接,進(jìn)行網(wǎng)絡(luò)請(qǐng)求(...)查看全部
-
看看jjjkh查看全部
-
設(shè)計(jì)架構(gòu)查看全部
-
okhttp源碼查看全部
-
call 任務(wù)類查看全部
-
runOnUiThread是什么查看全部
舉報(bào)
0/150
提交
取消