http 須要掌握的知識點(一)

超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最爲普遍的一種網絡協議。HTTP 也屬於 TCP/IP 協議族的子集,想要學習 HTTP ,先須要瞭解 TCP/IP。服務器

1 - TCP/IP 的分層管理

    TCP/IP 協議族裏重要的一點就是分層,按層次分爲如下4層:應用層、傳輸層、網絡層 、數據鏈路層網絡

    層次化的好處是,各層之間的協議改變能夠互不影響,只須要按照接口規劃好。學習

  • 應用層
      應用層決定了向用戶提供應用服務時通訊的活動。TCP/IP 協議族內預存了各種通用的應用服務。spa

     包括 HTTPFTP(File Transfer Protocol,文件傳輸協議),DNS(Domain Name System,域名系統)服務。htm

  • 傳輸層
      傳輸層提供處於網絡鏈接中的兩臺計算機之間的數據傳輸。blog

     有兩個性質不一樣的協議:TCP(Transmission Control Protocol,傳輸控制協議)和UDP(User Data Protocol,用戶數據報協議)接口

  • 網絡層
      網絡層用來處理在網絡上流動的數據包,數據包是網絡傳輸的最小數據單位。該層規定了經過怎樣的路徑到達對方計算機,並把數據包傳送給對方。three

      與對方計算機之間經過多臺計算機或網絡設備進行傳輸時,網絡層所起的做用就是在衆多的選項內選擇一條傳輸路線。ip

  • 鏈路層
      用來處理鏈接網絡的硬件部分。硬件上的範疇均在鏈路層的做用範圍以內。get

2 - TCP/IP 通訊傳輸流

  如圖1所示,發送端在層與層之間傳輸數據時,每通過一層時一定會被打上一個該層所屬的首部信息。反之,接收端在層與層傳輸數據時,每通過一層時會把對應的首部消去。
這種把數據信息包裝起來的作法成爲封裝。

圖1 - HTTP通訊傳輸過程

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

  • 3.1 負責傳輸的 IP 協議
      IP(Internet Protocol)網際協議位於網絡層。其做用是把各類數據包傳送給對方,須要知足各種條件,最重要的兩個條件即是 IP 地址 MAC 地址。IP 地址能夠和 MAC 地址進行配對,IP 地址可變換,但 MAC 地址基本不會更改。
      在網絡上,通訊的雙方在同一局域網(LAN)內的狀況是不多的,一般是通過多臺計算機和網絡設備中轉才能鏈接到對方。而在進行中轉時,會利用下一站中轉設備的 MAC 地址來搜索下一個中轉目標。這時,會採用 ARP (Address Resolution Protocol)協議。 ARP 是一種用以解析地址的協議,根據通訊方的 IP 地址就能夠反查出對應的 MAC 地址。

  • 3.2 確保可靠性的 TCP 協議
      TCP 位於傳輸層,提供可靠的字節流服務字節流服務是指將大塊數據分割成報文段(segment)爲單位的數據包進行管理
      爲了保證準確性,TCP 協議採用了三次握手(three-way handshaking)策略。握手過程當中使用了 TCP 的標誌(flag)—— SYN(synchronize)、ACK(acknowledgement)和 FIN(finish)。

TCP創建鏈接—三次握手:發送端首先發送一個帶SYN標誌的數據包給對方。接收端收到後,回傳一個帶有 SYN/ACK 標誌的數據包以示傳達確認信息。最後,發送端再回傳一個帶 ACK 標誌的數據包,表明「握手」結束,過程見圖2。

圖2 - TCP創建鏈接—三次握手

TCP釋放鏈接—四次握手:發送端首先發送一個帶 FIN 標誌的數據包給對方,而後進入 FIN-WAIT-1 狀態。接收端收到後不能當即斷開鏈接(防止數據丟失),先發送帶 ACK 標誌的數據包,此時發送端進入 FIN-WAIT-2 狀態。而後接收端將沒有傳輸完的數據繼續傳完,傳完以後發送一個帶 ACK 和 FIN 標誌的數據包,通知發送端。發送端發送 ACK 標誌的數據包給接收端,並進入 TIME-WAIT 狀態,等待 2MSL 後斷開鏈接。

圖3 - TCP釋放鏈接—四次握手
  • 3.3 負責域名解析的 DNS 服務
          DNS (Domain Name System)服務是和 HTTP 協議同樣位於應用層的協議。它提供域名到 IP 地址之間的解析服務。用戶一般經過主機名或域名來訪問對方的計算機,計算機則經過 IP 地址查詢服務器。因此 DNS 就提供了域名查找 IP 地址和從 IP 地址反查域名的服務。

  上述三種協議在 HTTP 通訊過程當中的做用能夠用一張圖來表示:

圖4 - HTTP 通訊過程當中各協議的做用
相關文章
相關標籤/搜索