前言
-
HTTP
網(wǎng)絡(luò)通信協(xié)議在任何的開發(fā)工作中都非常重要 - 今天倡鲸,我將獻(xiàn)上一份
HTTP
的說明指南供嚎,希望你們會(huì)喜歡
目錄
1. 儲(chǔ)備知識(shí)
講解HTTP
協(xié)議前,先了解一些基礎(chǔ)的計(jì)算機(jī)網(wǎng)絡(luò)相關(guān)知識(shí)
1.1 計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)
定義
計(jì)算機(jī)網(wǎng)絡(luò)的各層 + 其協(xié)議的集合作用
定義該計(jì)算機(jī)網(wǎng)絡(luò)的所能完成的功能結(jié)構(gòu)介紹
計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)分為3種:OSI
體系結(jié)構(gòu)峭状、TCP
/IP
體系結(jié)構(gòu)克滴、五層體系結(jié)構(gòu)
OSI
體系結(jié)構(gòu):概念清楚 & 理念完整,但復(fù)雜 & 不實(shí)用TCP
/IP
體系結(jié)構(gòu):含了一系列構(gòu)成互聯(lián)網(wǎng)基礎(chǔ)的網(wǎng)絡(luò)協(xié)議优床,是Internet
的核心協(xié)議 & 被廣泛應(yīng)用于局域網(wǎng) 和 廣域網(wǎng)- 五層體系結(jié)構(gòu):融合了
OSI
與TCP
/IP
的體系結(jié)構(gòu)劝赔,目的是為了學(xué)習(xí) & 講解計(jì)算機(jī)原理
-
TCP
/IP
的體系結(jié)構(gòu)詳細(xì)介紹
由于TCP
/IP
體系結(jié)構(gòu)較為廣泛,故主要講解
1.2 HTTP 協(xié)議通信的基礎(chǔ)模型
-
HTTP
協(xié)議傳輸信息的基礎(chǔ):TCP/IP
協(xié)議模型
HTTP
協(xié)議 屬于 最高層的應(yīng)用層
2. 簡(jiǎn)介
下面胆敞,將簡(jiǎn)單介紹一下 HTTP
3. 工作方式
-
HTTP
協(xié)議采用 請(qǐng)求 / 響應(yīng) 的工作方式 - 具體工作流程如下:
4. HTTP報(bào)文詳解
-
HTTP
在 應(yīng)用層 交互數(shù)據(jù)的方式 = 報(bào)文 -
HTTP
的報(bào)文分為:請(qǐng)求報(bào)文 & 響應(yīng)報(bào)文
分別用于 發(fā)送請(qǐng)求 & 響應(yīng)請(qǐng)求時(shí)
- 下面着帽,將詳細(xì)介紹這2種報(bào)文
4.1 請(qǐng)求報(bào)文
4.1.1 報(bào)文結(jié)構(gòu)
-
HTTP
的請(qǐng)求報(bào)文由 請(qǐng)求行杂伟、請(qǐng)求頭 & 請(qǐng)求體 組成,如下圖
- 下面仍翰,將詳細(xì)介紹每個(gè)組成部分
4.1.2 結(jié)構(gòu)詳細(xì)介紹
組成1:請(qǐng)求行
作用
聲明 請(qǐng)求方法 桅锄、主機(jī)域名幔亥、資源路徑 & 協(xié)議版本結(jié)構(gòu)
請(qǐng)求行的組成 = 請(qǐng)求方法 + 請(qǐng)求路徑 + 協(xié)議版本
注:空格不能省
- 組成介紹
此處特意說明GET蹬铺、PSOT方法的區(qū)別:
- 示例
設(shè):請(qǐng)求報(bào)文采用GET
方法昌跌、URL
地址 = http://www.tsinghua.edu.cn/chn/yxsz/index.htm;灵迫、HTTP1.1
版本
則 請(qǐng)求行是:GET /chn/yxsz/index.htm HTTP/1.1
組成2:請(qǐng)求頭
- 作用:聲明 客戶端秦叛、服務(wù)器 / 報(bào)文的部分信息
- 使用方式:采用”header(字段名):value(值)“的方式
- 常用請(qǐng)求頭
1. 請(qǐng)求和響應(yīng)報(bào)文的通用Header
2. 常見請(qǐng)求Header
- 舉例:
(URL地址:http://www.tsinghua.edu.cn/chn/yxsz/index.htm)
Host:www.tsinghua.edu.cn (表示主機(jī)域名)
User - Agent:Mozilla/5.0 (表示用戶代理是使用Netscape瀏覽器)
組成3:請(qǐng)求體
- 作用:存放 需發(fā)送給服務(wù)器的數(shù)據(jù)信息
可選部分,如
GET請(qǐng)求
就無請(qǐng)求數(shù)據(jù)
- 使用方式:共3種
至此瀑粥,關(guān)于請(qǐng)求報(bào)文的請(qǐng)求行挣跋、請(qǐng)求頭、請(qǐng)求體 均講解完畢利凑。
4.1.3 總結(jié)
- 關(guān)于 請(qǐng)求報(bào)文的總結(jié)如下
- 請(qǐng)求報(bào)文示例
4.2 HTTP響應(yīng)報(bào)文
4.2.1 報(bào)文結(jié)構(gòu)
-
HTTP
的響應(yīng)報(bào)文包括:狀態(tài)行浆劲、響應(yīng)頭 & 響應(yīng)體
- 其中,響應(yīng)頭哀澈、響應(yīng)體 與請(qǐng)求報(bào)文的請(qǐng)求頭、請(qǐng)求體類似
- 這2種報(bào)文最大的不同在于 狀態(tài)行 & 請(qǐng)求行
下面度气,將詳細(xì)介紹每個(gè)組成部分
4.2.2 結(jié)構(gòu)詳細(xì)介紹
組成1:狀態(tài)行
- 作用
聲明 協(xié)議版本割按,狀態(tài)碼,狀態(tài)碼描述 - 組成
狀態(tài)行有協(xié)議版本磷籍、狀態(tài)碼 &狀態(tài)信息組成
其中适荣,空格不能省
-
具體介紹
狀態(tài)行 示例
HTTP/1.1 202 Accepted
(接受)、HTTP/1.1 404 Not Found
(找不到)
組成2:響應(yīng)頭
- 作用:聲明客戶端院领、服務(wù)器 / 報(bào)文的部分信息
- 使用方式:采用”header(字段名):value(值)“的方式
- 常用請(qǐng)求頭
1. 請(qǐng)求和響應(yīng)報(bào)文的通用Header
2. 常見響應(yīng)Header
組成3:響應(yīng)體
- 作用:存放需返回給客戶端的數(shù)據(jù)信息
- 使用方式:和請(qǐng)求體是一致的弛矛,同樣分為:任意類型的數(shù)據(jù)交換格式、鍵值對(duì)形式和分部分形式
4.2.3 響應(yīng)報(bào)文 總結(jié)
4.3 總結(jié)
下面比然,簡(jiǎn)單總結(jié)兩種報(bào)文結(jié)構(gòu)
5. 額外知識(shí)
下面將講解一些關(guān)于HTTP
的額外知識(shí):
-
HTTP1.1
與HTTP1.0
的區(qū)別 -
HTTP
與HTTPS
的區(qū)別 -
HTTP
處理長(zhǎng)連接的方式
5.1 HTTP1.1 與 HTTP1.0的區(qū)別
Http1.1
比 Http1.0
多了以下優(yōu)點(diǎn):
- 引入持久連接丈氓,即 在同一個(gè)
TCP
的連接中可傳送多個(gè)HTTP
請(qǐng)求 & 響應(yīng) - 多個(gè)請(qǐng)求 & 響應(yīng)可同時(shí)進(jìn)行、可重疊
- 引入更加多的請(qǐng)求頭 & 響應(yīng)頭
如 與身份認(rèn)證强法、狀態(tài)管理 &
Cache
緩存等機(jī)制相關(guān)的万俗、HTTP1.0
無host
字段
5.2 HTTP 與HTTPS的區(qū)別
5.3 HTTP處理長(zhǎng)連接的方式
6. 總結(jié)
- 本文全面總結(jié)了
HTTP
的基礎(chǔ)知識(shí) - 接下來我會(huì)介紹繼續(xù)
Android
開發(fā)中的相關(guān)知識(shí),感興趣的同學(xué)可以繼續(xù)關(guān)注本人運(yùn)營(yíng)的Wechat Public Account
: - 我想給你們介紹一個(gè)與眾不同的Android微信公眾號(hào)(福利回贈(zèng))
- 我想邀請(qǐng)您和我一起寫Android(福利回贈(zèng))
請(qǐng)點(diǎn)贊饮怯!因?yàn)槟銈兊墓膭?lì)是我寫作的最大動(dòng)力闰歪!
相關(guān)文章閱讀
Android開發(fā):Handler異步通信機(jī)制全面解析(包含Looper、Message Queue)
Android開發(fā):最全面蓖墅、最易懂的Android屏幕適配解決方案
Android開發(fā):5分鐘解析Activity&Fragment生命周期
Android開發(fā):JSON簡(jiǎn)介及最全面解析方法!
Android開發(fā):XML簡(jiǎn)介及DOM库倘、SAX临扮、PULL解析對(duì)比
歡迎關(guān)注Carson_Ho的簡(jiǎn)書!
不定期分享關(guān)于安卓開發(fā)的干貨教翩,追求短公条、平、快迂曲,但卻不缺深度靶橱。