HTTP、TCP、UDP以及SOCKET之間的區別/聯繫

.TCP/IP表明傳輸控制協議/網際協議,指的是一系列協組。設計模式

  可分爲四個層次:數據鏈路層、網絡層、傳輸層和應用層。
瀏覽器

在網絡層:有IP協議、ICMP協議、ARP協議、RARP協議和BOOTP協議。
在傳輸層:中有TCP協議與UDP協議。
在應用層:有FTP、HTTP、TELNET、SMTP、DNS等協議。

  TCP和UDP使用IP協議從一個網絡傳送數據包到另外一個網絡。把IP想像成一種高速公路,它容許其它協議在上面行駛並找到到其它電腦的出口。TCP和UDP是高速公路上的「卡車」,它們攜帶的貨物就是像HTTP,文件傳輸協議FTP這樣的協議等。
       TCP和UDP是FTP,HTTP和SMTP之類使用的傳輸層協議。雖然TCP和UDP都是用來傳輸其餘協議的,它們卻有一個顯著的不一樣:TCP提供有保證的數據傳輸,而UDP不提供。這意味着TCP有一個特殊的機制來確保數據安全的不出錯的從一個端點傳到另外一個端點,而UDP不提供任何這樣的保證。安全

二.HTTP自己就是一個協議,是從Web服務器傳輸超文本到本地瀏覽器的傳送協議。服務器

  HTTP(超文本傳輸協議)是利用TCP在兩臺電腦(一般是Web服務器和客戶端)之間傳輸信息的協議。客戶端使用Web瀏覽器發起HTTP請求給Web服務器,Web服務器發送被請求的信息給客戶端。網絡

    HTTP協議是創建在請求/響應模型上的。首先由客戶創建一條與服務器的TCP連接,併發送一個請求到服務器,請求中包含請求方法、URL、協議版本以及
相關的MIME樣式的消息。服務器響應一個狀態行,包含消息的協議版本、一個成功和失敗碼以及相關的MIME式樣的消息。 HTTP
/1.0爲每一次HTTP的請求/響應創建一條新的TCP連接,所以一個包含HTML內容和圖片的頁面將須要創建屢次的短時間的TCP連接。一次TCP連接的創建
將須要3次握手。 另外,爲了得到適當的傳輸速度,則須要TCP花費額外的迴路連接時間(RTT)。每一次連接的創建須要這種常常性的開銷,而其並不帶有實際有用的數據
,只是保證連接的可靠性,所以HTTP
/1.1提出了可持續連接的實現方法。HTTP/1.1將只創建一次TCP的連接而重複地使用它傳輸一系列的請求/響應消息,
所以減小了連接創建的次數和常常性的連接開銷。

  雖然HTTP自己是一個協議,但其最終仍是基於TCP的。併發

三.SOCKET:TCP/IP網絡的API。socket

 

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

  Socket 接口是TCP/IP網絡的API,Socket接口定義了許多函數或例程,用以開發TCP/IP網絡上的應用程序。函數

    這是爲了實現以上的通訊過程而創建成來的通訊管道,其真實的表明是客戶端和服務器端的一個通訊進程,雙方進程經過socket進行通訊,而通訊的規則
採用指定的協議。socket只是一種鏈接模式,不是協議,tcp,udp,簡單的說(雖然不許確)是兩個最基本的協議,不少其它協議都是基於這兩個協議如,http
就是基於tcp的,用socket能夠建立tcp鏈接,也能夠建立udp鏈接,這意味着,用socket能夠建立任何協議的鏈接,由於其它協議都是基於此的。

 

綜上所述:須要IP協議來鏈接網絡;TCP是一種容許咱們安全傳輸數據的機制,使用TCP協議來傳輸數據的HTTP是Web服務器和客戶端使用的特殊協議。HTTP基於TCP協議,可是卻可使用socket去創建一個TCP鏈接。spa

  如圖:

                

相關文章
相關標籤/搜索