01 前端HTTP協議(圖解HTTP) 之 網路基礎

zhaoyezi發表於2018-09-03

1. 什麼是http

http(HyperText Transfer Protocol,超文字船速協議):是一種協議規範,完成從客戶端到伺服器端等一系列運作流程。而協議是指規則的約定。可以說:Web是建立在HTTP協議上通訊的。

2. TCP/IP 網路基礎

通常使用的網路是在TCP/IP協議族的基礎上運作的,而HTTP屬於它內部的一個子集。

2.1 協議(protocol)

協議(protocol): 當計算機與網路裝置需要通訊,雙方需要基於相同的方法(例如:如何探測到通訊目標,哪邊先發起通訊,使用哪種語言通訊,怎樣結束通訊等),這些遵循的的一種規則就是協議(protocol)

01 前端HTTP協議(圖解HTTP)  之 網路基礎

把互聯萬相關的協議集合起來統稱TCP/IP。也可以認為TCP/IPTCPIP兩種協議。

2.2 TCP/IP 模型

應用層:決定向使用者提供應用服務時的通訊活動。TCP/IP協議族內預存各類通用的應用服務。例如FTP[File Transfer Protocol]DNS[Domain Name System]在改成,HTTP協議也處於該層。
傳輸層: 提供網路連線中的兩臺計算機之間的資料傳輸。TCP(Transmission Control Protocol)傳輸控制協議UDP(User Data Protocol)使用者資料包協議處於該層。
網路層:處理網路上流動的資料包。資料包是網路傳輸的最小資料單位。該層對定了通過怎樣的傳輸路線(在眾多的路徑中選擇一條資料路線)到達對方計算機,並把資料傳送給對方。IP(Internet Protocol)屬於該層
資料鏈路層:用於處理聯通網路的硬體部分。包括控制作業系統、硬體的裝置驅動、NIC(Network Interface Card,網路適配卡[網路卡])、光纖等物理可見部分。

01 前端HTTP協議(圖解HTTP)  之 網路基礎

傳送端在層與層之間傳輸資料時,每經過一層必定會打上該層所屬的首部資訊接收端在曾與層傳輸資料時,每經過一層,會把對應的首部消去
這種把資料資訊包裝起來的做法叫做封裝(encapsulate)

01 前端HTTP協議(圖解HTTP)  之 網路基礎

#3. 與HTTP關係密切的協議:IP、TCP和DNS

3.1 負責傳輸的IP協議

IP(Internet Protocol,網際協議):所有的網路系統都會用到IP協議(TCP/IP協議族中的IP)。不要將IPIP地址搞混淆。
IP協議:作用是將各種資料包傳送給對方。傳送正確的條件:

  • IP地址: 節點被分配到的地址
  • MAC地址: 網路卡所屬的固定地址(IP地址可以和MAC地址進行匹配,IP地址可變換,MAC地址基本不會變化)

ARP協議(Address Resolution Protocol): 地址解析協議。根據通訊方的IP地址,反查出對應的MAC地址。
IP間的通訊依賴MAC地址。在網路上,正常的雙方通訊是需要經過多臺計算機和網路裝置中轉才能連線。在中轉時,會利用下一站中轉裝置的MAC地址來搜尋下一個中轉目標。這是就會採用ARP協議

01 前端HTTP協議(圖解HTTP)  之 網路基礎

3.2 確保可靠性的TCP協議

TCP協議屬於傳輸層,提供可靠的位元組流服務,將資料準確可靠地傳送給對方

位元組流服務(Byte Stream Service): 為了方便傳輸,將大塊資料分割成以報文段(segment)為單位的資料包進行管理。

為了準確無誤地將資料送達目的地,TCP協議採用三次握手(three-way handshaking)策略。當資料包傳送後,會向對方確認是否成功送達。握手標誌(flag):

  • SYN(synchronize): 傳送端 傳送SYN標誌給伺服器端
  • ACK(acknowledgement): 服務端 返回SYN/ACK ,代表傳達確認資訊
  • 最後 傳送端 再次回傳ACK的資料包,代表握手結束。如果握手過程某個階段中斷,TCP協議會再次相同順序傳送相同資料包

01 前端HTTP協議(圖解HTTP)  之 網路基礎

3.3 負責域名解析的DNS服務

DNS(Domain Name System): 應用於應用層的協議,提供域名IP地址之間的解析服務 或 逆向從IP地址反查詢域名的服務。

01 前端HTTP協議(圖解HTTP)  之 網路基礎

4. URI 和URL

URI(Uniform Resource Identifier): 統一資源識別符號。由某個協議方案表示的資源定位識別符號協議方案是指訪問資源所使用的協議型別名稱,例如HTTP協議的協議方案就是http

  • Uniform: 規定統一的格式方便處理多種不同型別的資源。
  • Resource: 可標識的任何東西。
  • Identifier: 可標識的物件,也稱為識別符號。

URL(統一資源定位符)表示資源的地點(網際網路所處位置),可知URL是URI的子集。

URI 格式

01 前端HTTP協議(圖解HTTP)  之 網路基礎

上圖是絕對URI的格式,其中每個具體屬性描述如下:

  • 通過 協議方案名http:https: 獲取 訪問資源時 指定的協議型別,也可使用data:javascript:指定資料或指令碼程式的方案名
  • 登入認證: 從服務獲取資源時需要的登入資訊(可選項)
  • 伺服器地址:可以是域名(使用DNS解析),可以是IP地址
  • 伺服器埠號:連結伺服器的網路埠號,可選。
  • 帶層次的檔案路徑: 指定伺服器上的檔案路徑來定位特指的資源
  • 查詢字串: 可以使用查詢字串傳入任意引數
  • 片段識別符號:標記處以獲取資源中的子資源(文件內的某個位置)

相關文章