1. 程式人生 > >加深理解HTTP請求---網絡基礎TCP/IP

加深理解HTTP請求---網絡基礎TCP/IP

poe 端口 百度網頁 上一個 數據鏈路 用戶 通信 屬於 --

為了了解HTTP,必須的了解TCP/IP協議族。

通常使用的網絡實在TCP/IP協議族的基礎上運作的。而HTTP就屬於他的一個子集。

1、TCP/IP 協議族

計算機與網絡設備要相互通信,雙方就必須基於相同的方法。比如:如何探測到通信目標、由哪一方先發起通信、使用哪種語言等等好多規則。

然而這種規則就是所謂的協議(protocol),你要用我就按照我協議的規則來。常用協議有:tcp,http,ftp,dhcp,dns,ip,pppoe,udp,snmp,icmp等等。

像這樣把與互聯網關聯的協議集合起來總稱TCP/IP,TCP/IP是在IP協議通信過程中,使用到的協議族的統稱。

2、TCP/ip的分層管理

TCP/IP協議族重要的一點就是分層。TCP/IP協議族按層次劃分分別是:應用層、傳輸層、網絡層和數據鏈路層。把塔層次化是有好處的。比如:當某個地方需求變更時,就必須吧所有的整體替換掉。而分層之後只需要把變動的層替換掉即可。下面介紹一下每個層次的作用

技術分享圖片
應用層

應用層決定了向用戶提供應用服務時通信的活動。比如:ftp,dns服務就是其中的兩類。HTTP協議也處於該層。

傳輸層

傳輸層對上層應用層,提供處於網絡連接中的兩臺計算機之間的數據傳輸。在傳輸層有兩個性質不同的協議:TCP和UDP。

網絡層

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

鏈路層

用來處理鏈接網絡的硬件部分。包括操作系統、硬件的設備驅動、網卡及光纖等物理可見部分。
技術分享圖片

3、TCP/IP通信傳輸流

比如說我想看百度網頁:流程如下:

  • 客戶端在應用層發出一個想看某個WEB頁面的HTTP請求的時候;
  • 接著為了傳輸方便,在傳輸層把應用層收到的數據進行分割,並在各個報文上打上標記序號及端口號後轉發給網絡層;
  • 在網絡層增加作為通信目的的MAC地址後轉發給鏈路層,這樣一來發送網絡的通信請求就準備齊全了;
  • 接收端的服務器在鏈路層接收到數據,按序往上層發送,一直到應用層;
  • 當傳輸到應用層,才能算真正接收到由客戶端發送過來的HTTP請求了。

技術分享圖片

發送端在層與層之間傳輸數據時,每經過一層時必定會打上一個該層的首部信息。接收端沒經過一層,會把消去。這種數據信心包裝叫做封裝。

TCP/IP傳輸是三次握手,四次斷開。一張圖搞定一切,哈哈

技術分享圖片

加深理解HTTP請求---網絡基礎TCP/IP