1. 程式人生 > >TCP、UDP和HTTP

TCP、UDP和HTTP

ng- net 可靠性 itl 簡單的 spa 圖片 版本號 mage

先來一個講TCP、UDP和HTTP關系的

1、TCP/IP是個協議組,可分為三個層次:網絡層、傳輸層和應用層。


在網絡層有IP協議、ICMP協議、ARP協議、RARP協議和BOOTP協議。


在傳輸層中有TCP協議與UDP協議。
在應用層有FTP、HTTP、TELNET、SMTP、DNS等協議。
因此,HTTP本身就是一個協議。是從Webserver傳輸超文本到本地瀏覽器的傳送協議。

2、HTTP協議是建立在請求/響應模型上的。首先由客戶建立一條與server的TCP鏈接,並發送一個請求到server。請求中包括請求方法、URI、協議版本號以及相關的MIME樣式的消息。

server響應一個狀態行,包括消息的協議版本號、一個成功和失敗碼以及相關的MIME式樣的消息。
HTTP/1.0為每一次HTTP的請求/響應建立一條新的TCP鏈接。因此一個包括HTML內容和圖片的頁面將須要建立多次的短期的TCP鏈接。一次TCP鏈接的建立將須要3次握手。


另外,為了獲得適當的傳輸速度。則須要TCP花費額外的回路鏈接時間(RTT)。

每一次鏈接的建立須要這樣的常常性的開銷,而其並不帶有實際實用的數據。僅僅是保證鏈接的可靠性,因此HTTP/1.1提出了可持續鏈接的實現方法。HTTP/1.1將僅僅建立一次TCP的鏈接而反復地使用它傳輸一系列的請求/響應消息,因此降低了鏈接建立的次數和常常性的鏈接開銷。

3、結論:盡管HTTP本身是一個協議,但其終於還是基於TCP的

只是,眼下,有人正在研究基於TCP+UDP混合的HTTP協議。

Socket是什麽呢?
Socket是應用層與TCP/IP協議族通信的中間軟件抽象層。它是一組接口。在設計模式中,Socket事實上就是一個門面模式,它把復雜的TCP/IP協議族隱藏在Socket接口後面,對用戶來說,一組簡單的接口就是所有,讓Socket去組織數據,以符合指定的協議。


技術分享

TCP、UDP和HTTP