圖解HTTP第一章
- 通常使用的網(wǎng)絡(luò)是在TCP/IP協(xié)議族的基礎(chǔ)上運(yùn)作的,而HTTP屬于他內(nèi)部的一個(gè)子集。
TCP/IP的分層管理
TCP/IP協(xié)議族按照層次分別分為以下四層
應(yīng)用層
傳輸層
網(wǎng)絡(luò)層
數(shù)據(jù)鏈路層
應(yīng)用層
應(yīng)用層決定了向用戶提供應(yīng)用服務(wù)時(shí)通信的活動(dòng),TCP/IP協(xié)議族內(nèi)預(yù)存了各類通用的應(yīng)用服務(wù),比如FTP(文件傳輸協(xié)議) DNS(域名系統(tǒng))服務(wù) 就是其中兩類。 HTTP協(xié)議也處于該層。
- 傳輸層
傳輸層對(duì)上層應(yīng)用層,提供處于網(wǎng)絡(luò)連接中的兩臺(tái)計(jì)算機(jī)之間的數(shù)據(jù)傳輸。
在傳輸層有兩個(gè)性質(zhì)不同的協(xié)議: TCP(傳輸控制協(xié)議) 和UDP(用戶數(shù)據(jù)報(bào)協(xié)議)
- 網(wǎng)絡(luò)層(又名網(wǎng)絡(luò)互聯(lián)層)
網(wǎng)絡(luò)層用來(lái)處理網(wǎng)絡(luò)上流動(dòng)的數(shù)據(jù)包。數(shù)據(jù)包是網(wǎng)絡(luò)傳輸?shù)淖钚?shù)據(jù)單位,該層規(guī)定了通過(guò)怎樣的路徑(所謂的傳輸路線)到達(dá)對(duì)方計(jì)算機(jī),并把數(shù)據(jù)包傳送給對(duì)方。
與對(duì)方計(jì)算機(jī)之間通過(guò)多臺(tái)計(jì)算機(jī)或網(wǎng)絡(luò)設(shè)備進(jìn)行傳輸時(shí),網(wǎng)絡(luò)層所起的作用就是在眾多的選項(xiàng)內(nèi)選擇一條傳輸路線。
- 鏈路層
用來(lái)處理連接網(wǎng)絡(luò)的硬件部分。包括控制操作系統(tǒng)、硬件的設(shè)備驅(qū)動(dòng)、NIC(網(wǎng)絡(luò)適配器,即網(wǎng)卡)、及光纖等物理可見(jiàn)部分。硬件上的范疇均在鏈路層的作用范圍內(nèi)。
HTTP發(fā)送請(qǐng)求的流程
:
客戶端再應(yīng)用層發(fā)出一個(gè)想看某個(gè)Web界面的HTTP請(qǐng)求。
接著,為了傳輸方便,在傳輸層(TCP協(xié)議)把從應(yīng)用層出收到的數(shù)據(jù)(HTTP請(qǐng)求報(bào)文)進(jìn)行分割,并在各個(gè)報(bào)文上打上標(biāo)記序號(hào)及端口號(hào)后轉(zhuǎn)發(fā)給網(wǎng)絡(luò)層。
網(wǎng)絡(luò)層(IP協(xié)議),增加作為通信目的地的MAC地址后轉(zhuǎn)發(fā)給鏈路層。這樣一來(lái),發(fā)往網(wǎng)絡(luò)的通信請(qǐng)求就準(zhǔn)備齊全了。
接收端的服務(wù)器在鏈路層接收到數(shù)據(jù)之后,按序往上層發(fā)送,一直到應(yīng)用層,當(dāng)傳輸?shù)綉?yīng)用層,才能算真正的接收到由客戶端發(fā)送過(guò)來(lái)的HTTP請(qǐng)求。
發(fā)送端在層與層之間傳輸數(shù)據(jù)的時(shí)候,每經(jīng)過(guò)一層,必定會(huì)被打上一個(gè)該層所屬的首部信息。反之接收層在層與層傳輸數(shù)據(jù)時(shí),每經(jīng)過(guò)一層時(shí)會(huì)把對(duì)應(yīng)的首部消去。
這種把數(shù)據(jù)信息包裝起來(lái)的做法稱為封裝(encapsulate)
1.4 IP TCP DNS
IP
是一種協(xié)議
IP
協(xié)議的作用是把各種數(shù)據(jù)包傳送給對(duì)方。
但是要確保準(zhǔn)確的傳送給對(duì)方,需要很多種條件,其中最重要的是IP地址
和MAC
地址。
IP
地址指明了節(jié)點(diǎn)被分配到的地址。
MAC地址
指的是網(wǎng)絡(luò)所屬的固定地址。
我的理解: 通過(guò)
IP
確定在某個(gè)范圍,通過(guò)MAC
地址確定哪臺(tái)電腦
- 使用ARP協(xié)議憑借MAC地址進(jìn)行通信
IP
間的通訊一般需要多個(gè)中轉(zhuǎn)站才能進(jìn)行通訊。
在進(jìn)行中轉(zhuǎn)時(shí),會(huì)利用下一站中轉(zhuǎn)設(shè)備的MAC
地址來(lái)搜索出下一個(gè)中轉(zhuǎn)目標(biāo)。這時(shí)會(huì)采用ARP協(xié)議
ARP(地址解析協(xié)議)
是一種用以解析地址的協(xié)議。根據(jù)通信方的IP
地址就可以反查出對(duì)應(yīng)的MAC
地址
- 沒(méi)有人能夠全面掌握互聯(lián)網(wǎng)中的傳輸狀況
在到達(dá)通信目標(biāo)前的中轉(zhuǎn)過(guò)程中,那些計(jì)算機(jī)和路由器等網(wǎng)絡(luò)設(shè)備只能獲悉很粗略的傳輸路線。這種機(jī)制成為路由選擇。
跟快遞分發(fā)機(jī)制有些類似,送到某個(gè)區(qū)域的集散中心,在由集散中心分配到合適的集散中心知道到達(dá)發(fā)送目的地。
1.4.2 確保可靠性的TCP
TCP協(xié)議
為了更容易傳送大數(shù)據(jù)會(huì)把數(shù)據(jù)分割以報(bào)文為單位的數(shù)據(jù)包,而且TCP協(xié)議
能夠確認(rèn)數(shù)據(jù)最終是否送達(dá)到對(duì)方。
- 三次握手
發(fā)送端首先發(fā)送一個(gè)帶SYN
標(biāo)志的數(shù)據(jù)包給對(duì)方,接收端接受到之后回傳一個(gè)帶有SYN/ACK
標(biāo)志的數(shù)據(jù)包以示傳達(dá)確認(rèn)信息,最后發(fā)送端再回傳一個(gè)ACK
標(biāo)志的數(shù)據(jù)包,代表握手成功。
若在握手過(guò)程中失敗,TCP協(xié)議
會(huì)再次以相同的順序發(fā)送相同的數(shù)據(jù)包。
1.5負(fù)責(zé)域名解析的DNS服務(wù)
DNS協(xié)議
是通過(guò)域名查找IP地址,通過(guò)IP地址反查域名服務(wù)