【1】HTTP協議和Socket介面區別

來源:互聯網
上載者:User

標籤:建立   文字   src   socket   png   服務   上線   請求   alt   

內容提要:

    1.網路七層模型

    2.什麼是HTTP協議

    3.什麼是Socket介面

 

1.網路七層模型

 

第一層:物理層

為裝置之間的資訊提供傳輸提供可靠環境,那麼這個環境是什麼呢?

如:同軸電纜,插頭,接收器,水晶頭,網線等。可以在通訊的兩個資料終端的裝置之間串連起來形成一條通路。

再說下這個協議中的某一項規定:比如eiars-232-c及rs-449就可以相容於100序列線上。

 

第二層:資料連結層

提供資料的傳送服務。這裡涉及到一個資訊就是幀,它是資料轉送的單元,不同的協議幀的長短也不同。它還有差錯恢複,流量控制的功能(這個指的是硬體)

ISO1745--1975 、ISO7776 、ISO3309--1984 就是這一層的三種不同協議,而每一個協議幀的長短也是不同的。

我們常見的鏈路層產品就是網卡,橋接器等。

 

第三層:網路層 

它的作用是路由的選擇,網路的啟用和終止。它還有的一個重要功能就是在一條資料鏈路上複用多條網路連接,大多採用的是分時複用的技術。

我們常見的是路由器、網關等

 

第四層:傳輸層

它是兩台電腦經過網路進行資料通訊時最基礎的端到端的一個層次。它的服務滿足了傳送品質,傳達速度,傳送費用的不同需要。它還具有差錯恢複,流量控制的功能(這個指的是軟體)

很多時候我們會發現QQ聊天的速度很快,但是我們上網速度就很慢,這就是因為QQ使用UDP協議,沒有錯誤修正功能,而網路的傳輸使用的是TCP協議,它的錯誤修正功能就會導致傳輸速度變慢。

 

第五層:會話層

它的服務可使應用建立和維持會話。再舉個栗子:就像兩個人打電話,一個人說,對方聽到後回應他,這就是會話層在發揮作用,它能夠使資訊傳遞時保持同步,並按次序進行。

 

第六層:展示層

它包括資料的表示形式,文字,圖形,圖片等都有各自的格式,就像圖片的格式有JPG,GIF等。

還有就是資料含義,就是資料的符號

這一層的作用就是為異種機通訊提供一種公用語言,以便相互操作。例如,IBM主機使用EBCDIC編碼,而大部分的PC機使用的是ASCII碼。這就要展示層來完成這一轉換。

 

第七層:應用程式層

實現應用進程之間的資訊交換。同時還有一系列的業務處理所需要的服務功能。像檔案的傳送,訪問和管理,列印服務都是屬於應用程式層。

 

 

簡單理解:

  物理層,資料連結層,網路層對應的是一個裝置,這個裝置在某一層就有某種功能。

  而傳輸層,會話層,展示層對應的是協議。

  應用程式層就是使用什麼樣的軟體。

 

2.什麼是HTTP協議

HTTP 協議:超文字傳輸通訊協定 (HTTP),對應於應用程式層,用於如何封裝資料.

http 為短串連:用戶端發送請求都需要伺服器端回送響應.請求結束後,主動釋放連結,因此為短串連。通常的做法是,不需要任何資料,也要保持每隔一段時間向伺服器發送"保持串連"的請求。這樣可以保證用戶端在伺服器端是"上線"狀態。

HTTP串連使用的是"要求-回應"方式,不僅在請求時建立串連,而且用戶端向伺服器端請求後,伺服器才返回資料。

3.什麼是Socket介面

Socket介面是對TCP/UDP協議封裝的介面。

 

要想明白 Socket,必須要理解 TCP 串連。

TCP 三向交握:握手過程中並不傳輸資料,在握手後伺服器與用戶端才開始傳輸資料,理想狀態下,TCP 串連一旦建立,在通訊雙方中的任何一方主動中斷連線之前 TCP 串連會一直保持下去。

Socket 是對 TCP/IP 協議的封裝,Socket 只是個介面不是協議,通過 Socket 我們才能使用 TCP/IP 協議,除了 TCP,也可以使用 UDP 協議來傳遞資料。

建立 Socket 串連的時候,可以指定傳輸層協議,可以是 TCP 或者 UDP,當用 TCP 串連,該Socket就是個TCP串連,反之。

Socket 原理

Socket 串連,至少需要一對通訊端,分為 clientSocket,serverSocket 串連分為3個步驟:

(1) 伺服器監聽:伺服器並不定位具體用戶端的通訊端,而是時刻處於監聽狀態;

(2) 用戶端請求:用戶端的通訊端要描述它要已連線的服務器的通訊端,提供地址和連接埠號碼,然後向伺服器通訊端提出串連請求;

(3) 串連確認:當伺服器通訊端收到用戶端通訊端發來的請求後,就響應用戶端通訊端的請求,並建立一個新的線程,把伺服器端的通訊端的描述發給用戶端。一旦用戶端確認了此描述,就正式建立串連。而伺服器通訊端繼續處於監聽狀態,繼續接收其他用戶端通訊端的串連請求.

Socket為長串連:通常情況下Socket 串連就是 TCP 串連,因此 Socket 串連一旦建立,通訊雙方開始互發資料內容,直到雙方中斷連線。在實際應用中,由於網路節點過多,在傳輸過程中,會被節點中斷連線,因此要通過輪詢高速網路,該節點處於活躍狀態。

 

很多情況下,都是需要伺服器端向用戶端主動推送資料,保持用戶端與服務端的即時同步。

若雙方是 Socket 串連,可以由伺服器直接向用戶端發送資料。

若雙方是 HTTP 串連,則伺服器需要等用戶端發送請求後,才能將資料回傳給用戶端。

因此,用戶端定時向伺服器端發送請求,不僅可以保持線上,同時也詢問伺服器是否有新資料,如果有就將資料傳給用戶端。

 

【1】HTTP協議和Socket介面區別

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.