天天看點

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

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

寫在前面的話

網上已經有很多不錯 有關HTTP 文章, 此文為記錄學習

HTTP

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

學習HTTP的同時,有必要了解下

TCP/IP

協定族。

通常使用的網絡都是在

TCP / IP

協定族的基礎上運作,而且HTTP 屬于

TCP/IP

的一個子集。

TCP / IP

TCP/IP 協定族

不同硬體與作業系統之間通信有需要有一定規則來限制,這樣可以統一溝通的條件。T

TCP / IP

是網際網路相關各協定族的總稱,它不隻是 單純的 指

TCP

IP

協定,

它有

FTP

,

SNMP

HTTP

PPPoE

........ 組成的 協定族。

TCP/ IP 分層

TCP / IP

協定族 按層次分為 4 層:

應用層

傳輸層

網絡層

資料鍊路層

應用層

作用

: 應用層決定了向使用者提供應用服務時通信的活動。

TCP / IP 協定族内預存了各類通用的應用服務。

例如: 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

, 大手請手下留情。

原創不易,覺得不錯分享點贊👍

繼續閱讀