網路基礎 TCP/IP
為了理解 HTTP,我們有必要事先了解一下 TCP/IP 協議族。通常使用的網路(包括網際網路)是在 TCP/IP 協議族的基礎上運作的。而 HTTP 屬於它內部的一個子集。接下來,我們僅介紹理解 HTTP 所需掌握的 TCP/IP 協議族的概要。
TCP/IP 協議族
計算機與網路裝置要相互通訊,雙方就必須基於相同的方法。比如,如何探測到通訊目標、由哪一邊先發起通訊、使用哪種語言進行通訊、怎樣結束通訊等規則都需要事先確定。不同的硬體、作業系統之間的通訊,所有的這一切都需要一種規則。而我們就把這種規則稱為協議(protocol)。
協議中存在各式各樣的內容。從電纜的規格到 IP 地址的選定方法、尋找異地使用者的方法、雙方建立通訊的順序,以及 Web 頁面顯示需要處理的步驟,等等。像這樣把與網際網路相關聯的協議集合起來總稱為 TCP/IP。也有說法認為,TCP/IP 是指 TCP 和 IP 這兩種協議。還有一種說法認為,TCP/IP 是在 IP 協議的通訊過程中,使用到的協議族的統稱。
TCP/IP 的分層管理
TCP/IP 協議族裡重要的一點就是分層。TCP/IP 協議族按層次分別分為以下 4 層:應用層、傳輸層、網路層和資料鏈路層。
把 TCP/IP 層次化是有好處的。比如,如果網際網路只由一個協議統籌,某個地方需要改變設計時,就必須把所有部分整體替換掉。而分層之後只需把變動的層替換掉即可。把各層之間的介面部分規劃好之後,每個層次內部的設計就能夠自由改動了。值得一提的是,層次化之後,設計也變得相對簡單了。處於應用層上的應用可以只考慮分派給自己的任務,而不需要弄清對方在地球上哪個地方、對方的傳輸路線是怎樣的、是否能確保傳輸送達等問題。TCP/IP 協議族各層的作用如下。
應用層
應用層決定了向用戶提供應用服務時通訊的活動。
TCP/IP 協議族內預存了各類通用的應用服務。比如,FTP(FileTransfer Protocol,檔案傳輸協議)和 DNS(Domain Name System,域名系統)服務就是其中兩類。
HTTP 協議也處於該層。
傳輸層
傳輸層對上層應用層,提供處於網路連線中的兩臺計算機之間的資料傳輸。
在傳輸層有兩個性質不同的協議:TCP(Transmission ControlProtocol,傳輸控制協議)和 UDP(User Data Protocol,使用者資料報
協議)。
網路層(又名網路互連層)
網路層用來處理在網路上流動的資料包。資料包是網路傳輸的最小資料單位。該層規定了通過怎樣的路徑(所謂的傳輸路線)到達對方計算機,並把資料包傳送給對方。與對方計算機之間通過多臺計算機或網路裝置進行傳輸時,網路層所起的作用就是在眾多的選項內選擇一條傳輸路線。
鏈路層(又名資料鏈路層,網路介面層)
用來處理連線網路的硬體部分。包括控制作業系統、硬體的裝置驅動、NIC(Network Interface Card,網路介面卡,即網絡卡),及光纖等物理可見部分(還包括聯結器等一切傳輸媒介)。硬體上的範疇均在鏈路層的作用範圍之內。