图解HTTP学习记录(一)
第一章 了解Web及網(wǎng)絡(luò)基礎(chǔ)
HTTP通常被翻譯為超文本傳輸協(xié)議,但是不夠嚴(yán)謹(jǐn),嚴(yán)謹(jǐn)?shù)膽?yīng)該為“超文本轉(zhuǎn)移協(xié)議”
TCP/IP協(xié)議族
協(xié)議中存在各式各樣的內(nèi)容。從電纜的規(guī)格到 IP 地址的選定方法、尋找異地用戶的方法、雙方建立通信的順 序,以及 Web 頁(yè)面顯示需要處理的步驟,等等。 像這樣把與互聯(lián)網(wǎng)相關(guān)聯(lián)的協(xié)議集合起來(lái)總稱為 TCP/IP。也有說(shuō)法認(rèn)為,TCP/IP 是指 TCP 和 IP 這兩種協(xié) 議。還有一種說(shuō)法認(rèn)為,TCP/ IP 是在 IP 協(xié)議的通信過(guò)程中,使用到的協(xié)議族的統(tǒng)稱。
TCP/IP的分層管理
TCP/IP 協(xié)議族里重要的一點(diǎn)就是分層。TCP/IP 協(xié)議族按層次分別分為以下 4 層:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層 和數(shù)據(jù)鏈路層。
把 TCP/IP 層次化是有好處的。比如,如果互聯(lián)網(wǎng)只由一個(gè)協(xié)議統(tǒng)籌,某個(gè)地方需要改變?cè)O(shè)計(jì)時(shí),就必須把所 有部分整體替換掉。而分層之后只需把變動(dòng)的層替換掉即可。把各層之間的接口部分規(guī)劃好之后,每個(gè)層次 內(nèi)部的設(shè)計(jì)就能夠自由改動(dòng)了。
TCP/IP 協(xié)議族各層的作用如下。
應(yīng)用層
應(yīng)用層決定了向用戶提供應(yīng)用服務(wù)時(shí)通信的活動(dòng)。 TCP/IP 協(xié)議族內(nèi)預(yù)存了各類通用的應(yīng)用服務(wù)。比如,FTP(File Transfer Protocol,文件傳輸協(xié)議)和 DNS(Domain Name System,域名系統(tǒng))服務(wù)就是其中兩類。 HTTP 協(xié)議也處于該層。
傳輸層
傳輸層對(duì)上層應(yīng)用層,提供處于網(wǎng)絡(luò)連接中的兩臺(tái)計(jì)算機(jī)之間的數(shù)據(jù)傳輸。 在傳輸層有兩個(gè)性質(zhì)不同的協(xié)議:TCP(Transmission Control Protocol,傳輸控制協(xié)議)和 UDP(User Data Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)。
網(wǎng)絡(luò)層(又名網(wǎng)絡(luò)互連層)
網(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)選擇一條 傳輸路線
鏈路層(又名數(shù)據(jù)鏈路層,網(wǎng)絡(luò)接口層)
用來(lái)處理連接網(wǎng)絡(luò)的硬件部分。包括控制操作系統(tǒng)、硬件的設(shè)備驅(qū)動(dòng)、NIC(Network Interface Card,網(wǎng)絡(luò) 適配器,即網(wǎng)卡),及光纖等物理可見(jiàn)部分(還包括連接器等一切傳輸媒介)。硬件上的范疇均在鏈路層的 作用范圍之內(nèi)。
TCP/IP 通信傳輸流
利用 TCP/IP 協(xié)議族進(jìn)行網(wǎng)絡(luò)通信時(shí),會(huì)通過(guò)分層順序與對(duì)方進(jìn)行通信。發(fā)送端從應(yīng)用層往下走,接收端則往 應(yīng)用層往上走。
我們用 HTTP 舉例來(lái)說(shuō)明,首先作為發(fā)送端的客戶端在應(yīng)用層(HTTP 協(xié)議)發(fā)出一個(gè)想看某個(gè) Web 頁(yè)面的 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ò)一層時(shí)必定會(huì)被打上一個(gè)該層所屬的首部信息。反之,接收端在層 與層傳輸數(shù)據(jù)時(shí),每經(jīng)過(guò)一層時(shí)會(huì)把對(duì)應(yīng)的首部消去。
這種把數(shù)據(jù)信息包裝起來(lái)的做法稱為封裝(encapsulate)
總結(jié)
以上是生活随笔為你收集整理的图解HTTP学习记录(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Cocos Creator JS 时间戳
- 下一篇: Perhaps you are runn