1.數(shù)據(jù)的傳輸與格式
-
首先我們來了解一下C/S,B/S系統(tǒng)架構(gòu):
C/S:(client-server) B/S:(browser-server)
服務(wù)器(后端)開發(fā)語言:
Java .Net C/C++ PHP Ruby Python -
數(shù)據(jù)的傳輸
服務(wù)器端的數(shù)據(jù)是分成一個(gè)個(gè)單個(gè)的數(shù)據(jù)包傳入客戶端.
-
客戶端與服務(wù)器做數(shù)據(jù)傳輸,數(shù)據(jù)必須約定使用同一種格式
2.HTTP協(xié)議的概念
- 全稱"超文本傳輸協(xié)議",瀏覽器與服務(wù)器之間的通信規(guī)則
-
HTTP協(xié)議永遠(yuǎn)都是客戶端發(fā)起請(qǐng)求,服務(wù)器回送響應(yīng)。
3.HTTP協(xié)議----請(qǐng)求包,響應(yīng)包
- 客戶端發(fā)送一個(gè)HTTP請(qǐng)求,是向服務(wù)器提交了一個(gè)HTTP請(qǐng)求包
- 服務(wù)器收到請(qǐng)求之后,向客戶端回應(yīng)一個(gè)HTTP響應(yīng)包
4 HTTP協(xié)議----請(qǐng)求方式
- GET請(qǐng)求:是向服務(wù)器索取數(shù)據(jù)的一種請(qǐng)求方式 ,如獲取一個(gè)電影列表的數(shù)據(jù)
- POST請(qǐng)求:向服務(wù)器提交數(shù)據(jù)的一種請(qǐng)求方式 ,如注冊(cè)用戶,用戶登錄
5 HTTP協(xié)議----請(qǐng)求包結(jié)構(gòu)
-
HTTP請(qǐng)求包結(jié)構(gòu):HTTP請(qǐng)求頭, HTTP請(qǐng)求體(POST才有),url ,如圖:
- GET\POST請(qǐng)求,客戶端向服務(wù)器端提交的數(shù)據(jù),可以放入請(qǐng)求體或URL后面
-
請(qǐng)求體中的數(shù)據(jù)格式:JSON榄檬、XML追驴、&符號(hào)拼接(主要),如圖:
6 HTTP協(xié)議----響應(yīng)包結(jié)構(gòu)
- HTTP響應(yīng)包結(jié)構(gòu):響應(yīng)頭,響應(yīng)體
- HTTP響應(yīng)有個(gè)狀態(tài)碼:標(biāo)志響應(yīng)的結(jié)果,200表示成功,404未找到頁面
- 服務(wù)器通過響應(yīng)包將數(shù)據(jù)發(fā)送給客戶端,數(shù)據(jù)主要在響應(yīng)包的響應(yīng)體中,而數(shù)據(jù)格式可以用:JSON(主要)浓瞪、XML
-
響應(yīng)頭中的Content-Type表示響應(yīng)體中數(shù)據(jù)的類型:text/html、application/json馆截、text/json啥么、text/xml蝌矛、image/jpeg等,如下圖:
7 同步 異步請(qǐng)求
- 同步請(qǐng)求: 數(shù)據(jù)的請(qǐng)求過程是在主線程執(zhí)行的,網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)倪^程會(huì)導(dǎo)致主線程堵塞
- 異步請(qǐng)求:數(shù)據(jù)的請(qǐng)求過程在多線程執(zhí)行,保存主線程的流暢性
- UI界面的渲染與刷新在主線中執(zhí)行,主線程不流暢會(huì)導(dǎo)致UI界面卡頓