網(wǎng)絡(luò)

1 HTTP協(xié)議
1.1請求報文
1.2 響應(yīng)報文
1.3 http的請求方式有哪些
1.4 HTTP擴(kuò)展方法
1.5 GET和POST的區(qū)別(從語義的角度)
1.6 狀態(tài)碼
1.7 首部
1.8 連接建立過程
1.9 HTTP的特點
2 HTTP與網(wǎng)絡(luò)安全
2.1 HTTPS連接建立流程是怎樣的
2.2 HTTPS都使用了那些加密手段?為什么
3 TCP/UDP傳輸層協(xié)議
3.1 DNS解析
3.1.1 了解DNS解析
3.1.2 DNS解析查詢方式
3.1.3 DNS解析存在哪些常見問題
3.1.3.1 DNS劫持問題
3.1.3.2 DNS解析轉(zhuǎn)發(fā)問題
3.1.3.3 怎么解決DNS劫持
4 Session/Cookie


1 HTTP協(xié)議

HTTP是超文本傳輸協(xié)議

了解報文流的概念:
HTTP報文在客戶端、服務(wù)器、和代理之間的傳遞可以形象的稱為流動。術(shù)語“流入”、“流出”、“上游”、“下游”是在流的基礎(chǔ)上定義的,用來描述報文方向。
“流入”意為報文從客戶端到達(dá)服務(wù)器;“流出”,則和流入相反??梢钥闯觯@兩個術(shù)語是針對服務(wù)器而言。
“上游”和“下游”,不管是請求報文還是響應(yīng)報文,所有報文都會向“下游”流動。所有報文的發(fā)送者都在接收者的“上游”。

1.1請求報文

請求報文.png

1.2 響應(yīng)報文

響應(yīng)報文.png

? HTTP報文結(jié)構(gòu):


? HTTP報文結(jié)構(gòu).png

實例 :請求和響應(yīng)報文


實例 :請求和響應(yīng)報文.png

各部分的作用如下:

  • 起始行和首部是由行分割的ASCII文本,每行由一個回車符(\n)和一個換行符(\r)組成的序列結(jié)束。這個序列可以寫作CRLF。
  • method,客戶端希望服務(wù)器執(zhí)行的動作。
  • request-url,請求的資源路徑。
  • version,HTTP的版本,如HTTP/1.0。不同版本有不同的特性。
  • status,3位數(shù),描述了請求過程中的情況。具體介紹在后面。
  • reason-phrase,和status對應(yīng),是其描述。
  • headers,可以沒有或多個。具體介紹在后面。
  • entity-body,數(shù)據(jù)塊,主體是可選的,可以為二進(jìn)制或文本。

1.3 HTTP的請求方式有哪些

HTTP規(guī)定了這些方法,具體服務(wù)器是否支持,由服務(wù)器確定。

HTTP的請求方式 描述 詳細(xì)描述
GET 告知服務(wù)器,需要從服務(wù)器向客戶端發(fā)送命名資源 從服務(wù)器獲取資源,HTTP/1.1要求實現(xiàn)的方法。
HEAD 僅發(fā)送命名資源響應(yīng)中的HTTP首部 GET方法類似,但是響應(yīng)報文中不會包含主體部分。使用該特性,可以在不真正獲取資源的情況下完成:
判斷資源類型
查看對應(yīng)資源是否存在
查看資源是否被修改 HTTP/1.1規(guī)范中要求實現(xiàn)該方法,并且對于同一資源,該方法響應(yīng)首部應(yīng)該和GET方法返回的相同。
PUT 將客戶端的數(shù)據(jù)存儲的命名的服務(wù)器資源中 GET相反,請求服務(wù)器在指定位置創(chuàng)建文件,內(nèi)容為請求主體的內(nèi)容。若對應(yīng)資源存在,則替換。
POST 將客戶端數(shù)據(jù)發(fā)送到一個服務(wù)器應(yīng)用程序 客戶端向服務(wù)器發(fā)送數(shù)據(jù)。常用來提交表單。
TRACE 追溯一個請求 客戶端發(fā)出請求后,可能經(jīng)過中間的網(wǎng)關(guān)、代理等,原始請求可能被修改,使用TRACE可以查看最終到達(dá)服務(wù)器的請求具體是什么樣子(服務(wù)器在響應(yīng)報文的主體中包含其收到的請求報文)。
TRACE通常用于診斷一個請求是否能到達(dá)服務(wù)器,不能帶有主體部分。
OPTIONS 查看服務(wù)器對資源支持的操作 用于查看服務(wù)器對特定資源所支持的方法。在請求報文中若使用*代替URL,則意為查看服務(wù)器對所有資源的通用方法。
DELETE 從服務(wù)器刪除資源 請求服務(wù)器刪除指定資源。當(dāng)然,具體是否刪除,由服務(wù)器決定

1.4 HTTP擴(kuò)展方法

HTTP擴(kuò)展方法指的是沒有在HTTP規(guī)范中定義的方法。例如,下面是在WebDAV HTTP擴(kuò)展中的方法:

擴(kuò)展方法名 描述
LOCK 告知服務(wù)器,對指定資源鎖定,防止其他人對其更改
MKCOL 允許用戶創(chuàng)建資源
COPY 允許用戶 復(fù)制資源
MOVE 移動服務(wù)器資源

1.5 GET和POST的區(qū)別

1.6 狀態(tài)碼

1.7 首部

1.8 連接建立過程

三次握手 四次揮手.png

三次揮手(建立連接)
第一次:建立連接時,客戶端發(fā)送SYN包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn);
第二次:服務(wù)器收到SYN包,向客戶端返回ACK(ack=j+1),同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包,此時服務(wù)器進(jìn)入SYN_RCVD狀態(tài);
第三次:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手。
完成三次握手,客戶端與服務(wù)器開始傳送數(shù)據(jù),也就是ESTABLISHED狀態(tài)。
三次握手保證了不會建立無效的連接,從而浪費資源。

四次揮手(斷開連接)
第一次: TCP客戶端發(fā)送一個FIN,用來關(guān)閉客戶到服務(wù)器的數(shù)據(jù)傳送。
第二次:服務(wù)器收到這個FIN,它發(fā)回一個ACK,確認(rèn)序號為收到的序號加1。和SYN一樣,一個FIN將占用一個序號。
第三次:服務(wù)器關(guān)閉客戶端的連接,發(fā)送一個FIN給客戶端。
第四次:客戶端發(fā)回ACK報文確認(rèn),并將確認(rèn)序號設(shè)置為收到序號加1。

1.9 HTTP的特點

  • 支持客戶/服務(wù)器模式
  • 簡單快速:客戶向服務(wù)器請求服務(wù)時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規(guī)定了客戶與服務(wù)器聯(lián)系的類型不同。由于HTTP協(xié)議簡單,使得HTTP服務(wù)器的程序規(guī)模小,因而通信速度很快。
  • 靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對象。正在傳輸?shù)念愋陀蒀ontent-Type(Content-Type是HTTP包中用來表示內(nèi)容類型的標(biāo)識)加以標(biāo)記。
  • 無連接:無連接的含義是限制每次連接只處理一個請求。服務(wù)器處理完客戶的請求,并收到客戶的應(yīng)答后,即斷開連接。采用這種方式可以節(jié)省傳輸時間。
  • 無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議。無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面,在服務(wù)器不需要先前信息時它的應(yīng)答就較快。
持久連接:
持久連接.png

頭部字段.png

怎么判斷一個請求是否結(jié)束.png

2 HTTP與網(wǎng)絡(luò)安全

2.1 HTTPS連接建立流程是怎樣的

2.2 HTTPS都使用了那些加密手段?為什么

3 TCP/UDP傳輸層協(xié)議

3.1 DNS解析

4 Session/Cookie

參考文章:
《圖解HTTP》— HTTP報文信息
【讀】這一次,讓我們再深入一點 - HTTP報文
iOS http & https & 網(wǎng)絡(luò)請求過程
詳細(xì)解析 HTTP 與 HTTPS 的區(qū)別
IOS 網(wǎng)絡(luò)請求之 NSURLSession 使用
iOS網(wǎng)絡(luò)層詳解和優(yōu)化
HTTP協(xié)議詳解(一)
HTTP協(xié)議詳解(二)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容