[前端必知 ]HTTP or TCP/IP 基礎

寫在前面的話

網上已經有不少不錯 有關HTTP 文章, 此文爲記錄學習HTTPweb

最近在項目開發中,對於HTTP 這塊比較懵,來補補基礎吧!安全

學習HTTP的同時,有必要了解下TCP/IP協議族。網絡

一般使用的網絡都是在TCP / IP 協議族的基礎上運做,並且HTTP 屬於TCP/IP的一個子集。編輯器

TCP / IP

TCP/IP 協議族

不一樣硬件與操做系統之間通訊有須要有必定規則來約束,這樣能夠統一溝通的條件。T學習

TCP / IP 是互聯網相關各協議族的總稱,它不僅是 單純的 指 TCPIP協議,url

它有 FTP , SNMP , HTTP , PPPoE........ 組成的 協議族。spa

TCP/ IP 分層

TCP / IP 協議族 按層次分爲 4 層: 應用層 , 傳輸層 , 網絡層, 數據鏈路層操作系統

應用層

做用: 應用層決定了向用戶提供應用服務時通訊的活動。3d

TCP / IP 協議族內預存了各種通用的應用服務。code

例如: FTP(文件傳輸協議) DNS(域名系統)HTTP

傳輸層

做用: 兩臺計算機之間的數據傳輸,服務於應用層。

在傳輸層有兩個性質不一樣的協議: TCP(傳輸控制協議) UDP(用戶數據協議)

網路層

做用: 用來處理在網絡上流動的數據包,以何種方式傳遞給對方。

數據包是網絡傳輸的最小數據單位。

網絡層 決定了 經過什麼樣的方式把數據包傳遞給對方。

網絡層 最重要的功能是: 路由數據包。它會根據網絡上路由IP, 網絡擁塞狀況,選擇一條最合適的路由路線,以最快的速度將數據包傳遞給對方。

數據鏈路層

做用: 用來處理鏈接網絡的硬件部分。

硬件上的範疇均在鏈路層的做用範圍以內

TCP / IP 通訊傳輸流

採用 TCP / IP 協議進行網絡通訊時, 客戶端(發送端) 會從應用層 往下走, 一層 一層的傳輸, 每進入一層,被被打上標記序號以及端口號, 當客戶端 走完 本身的 4 層時, 會進入 服務端(接收端) ,它是按 鏈路層 而後 一層一層 往上走, 每進入一層, 取消一個 標記序號, 直到頂層(應用層),這時, 服務端才接收到了 客戶端服務端

發送的請求。

服務端客戶端 發送請求,和以前的順序相反。

服務端(應用層----------> 數據鏈路層)

客戶端(數據鏈路層 ---------------> 應用層)

HTTP 相關的協議

負責傳輸的IP協議

IP : 它是網際協議,它位於網絡層。

做用: 把各類數據包傳遞給對方。

要保證能夠 把數據包準確的傳遞給對方,有兩個條件:

IP 地址: 它標明瞭要傳遞到對方的 ip 地址。

MAC 地址: 它是指網卡的固定地址。

IP 和 MAC 是驗證 一個身份的 關鍵

IP 地址 能夠 和 MAC 地址 進行匹配,IP 地址能夠更換,但MAC 地址基本不會更換。

計算機於計算機之間通訊時,它不會直接查找到對方IP的,中間過程會經歷 設備中轉,在進行中轉的同時,它 會 採用 ARP 協議 來 推出 IP 地址的 MAC 地址,通過屢次中轉最終找到對方的 MAC 地址, MAC 地址 於 IP 地址匹配, 成功的創建了鏈接。


ARP : 它是一用來解析地址的協議。根據對方IP地址能夠反查出對應的MAC 地址

確保可靠性TCP 協議

TCP 位於傳輸層, 提供可靠的字節流服務。

字節流服務 : 爲了方便傳輸,它會將大塊數據分割成 以報文段爲單位的數據進行管理。

爲了可靠的安全的能夠傳遞給對方數據, TCP 採用 三次握手策略,

SYN 同步序列編號 ACK 確認字符

第一次握手 : 發送端會發送一個帶有 SYN 標誌的數據包給對方。

第二次握手 : 對方(接收端)收到發送端 發送過來的 SYN 包, 回傳一個帶有 SYN / ACK 標誌的包 來標識接收成功。

第三次握手 : 發送端 回傳一個 ACK 包 表示 握手接收

TCP 爲什麼要三次握手呢?

第一次握手: 客戶端 向 服務端 發送請求

第二次握手 : 服務端 接收 客戶端發來的請求,進行處理。

前 兩次握手 已經實現 請求處理過程,那麼爲何仍是須要 創建第三次握手呢?

若是不進行 第三次握手 , 假如,第一次握手 , 客戶端因爲網絡緣由,請求延遲發送, 你覺得 這樣就結束了請求,但網絡節點正常後,它還會發送這個請求,這是一個早已失效的報文;第二次握手,服務端 接收到 客戶端發送過來的 延遲請求,但此時客戶端沒有發送任何數據,而服務端還在等候 客戶端, 形成了資源浪費。


第三次握手是爲了防止已經失效的鏈接請求報文段忽然又傳到服務端,於是產生錯誤。

讓三次握握手 更生動

在戀愛關係中,就是 肯定 一下, A 是否 爲 單相思,

若是不三次握手, B 早已和別的男友........ 而 A 還在 苦苦 等待 B 的接受。

幹嗎不三次握手嘛

A 向 B 表白了;

B 收到 A 的 表白了, B 要回應 A ,我不喜歡你

A 收到 了 B 迴應, 讓他 脫離了 單相思

負責域名解析DNS 服務

DNS 服務 和HTTP 協議 都位於應用層協議。

做用 : 提供域名IP 地址解析服務。

DNS 協議提供經過域名查找IP 地址, 也能夠經過IP 地址反查 域名

HTTP 與 各類協議之間的關係

HTTP 與上面各個協議之間 串聯起來 理解各個協議個做用。

圖片來源 HTTP圖解

URI 與 URL

什麼是URI URL

URI 統一資源標識符。

URI 是 Uniform Resource Identifier 的縮寫

Uniform 統一格式

Resource 可標識資源

Idetifier 可標識對象,標識符

URI 用字符串 標識 互聯網資源, 而URL 表示資源地點。


URL 統一資源定位符, 這個相信你們已經很瞭解了。

URI 格式

​ 到如今,咱們瞭解了TCP / IP 協議族 的組成以及分層,還有最重要的 三次握手,作一個再也不 單相思的小男孩;還有有關HTTP 相關知識。

這只是剛開始,路漫漫其修遠兮吾將上下而求索.

寫此文,爲記錄學習 HTTP, 大手請手下留情。

原創不易,以爲不錯分享點贊👍

相關文章
相關標籤/搜索