Http和Socket之間的和關係

2021-10-19 22:12:31 字數 1979 閱讀 6559

一、先說下http網路協議棧

二、連線過程

三、重點來了,tcp套接字程式設計,也就是所謂的socket

四、通過比較發現http和socket完全是兩個不同的概念,http是應用層的,socket是傳輸層和網路層的,http要基於socket實現。httpclient的預設請求超時時間為60s。

五、發起乙個http請求的過程就是建立乙個socket通訊的過程。httpclient也是基於socket的

網路由下往上分為

物理層、資料鏈路層、網路層、傳輸層、會話層、表示層和應用層。

通過初步的了解,我知道ip協議對應於網路層,tcp協議對應於傳輸層,而http協議對應於應用層,

三者從本質上來說沒有可比性,

socket則是對tcp/ip協議的封裝和應用(程式設計師層面上)。

也可以說,tpc/ip協議是傳輸層協議,主要解決資料如何在網路中傳輸,

而http是應用層協議,主要解決如何包裝資料。

關於tcp/ip和http協議的關係,網路有一段比較容易理解的介紹:

「我們在傳輸資料時,可以只使用(傳輸層)tcp/ip協議,但是那樣的話,如果沒有應用層,便無法識別資料內容。

如果想要使傳輸的資料有意義,則必須使用到應用層協議。

應用層協議有很多,比如http、ftp、telnet等,也可以自己定義應用層協議。

web使用http協議作應用層協議,以封裝http文字資訊,然後使用tcp/ip做傳輸層協議將它發到網路上。」

而我們平時說的最多的socket是什麼呢,實際上socket是對tcp/ip協議的封裝,socket本身並不是協議,而是乙個呼叫介面(api)。

通過socket,我們才能使用tcp/ip協議。

實際上,socket跟tcp/ip協議沒有必然的聯絡。

socket程式設計介面在設計的時候,就希望也能適應其他的網路協議。

所以說,socket的出現只是使得程式設計師更方便地使用tcp/ip協議棧而已,是對tcp/ip協議的抽象,

從而形成了我們知道的一些最基本的函式介面,比如create、listen、connect、accept、send、read和write等等。

網路有一段關於socket和tcp/ip協議關係的說法比較容易理解:

「tcp/ip只是乙個協議棧,就像作業系統的執行機制一樣,必須要具體實現,同時還要提供對外的操作介面。

這個就像作業系統會提供標準的程式設計介面,比如win32程式設計介面一樣,

tcp/ip也要提供可供程式設計師做網路開發所用的介面,這就是socket程式設計介面。」

csdn上有個比較形象的描述:http是轎車,提供了封裝或者顯示資料的具體形式;socket是發動機,提供了網路通訊的能力。

實際上,傳輸層的tcp是基於網路層的ip協議的,而應用層的http協議又是基於傳輸層的tcp協議的,而socket本身不算是協議,就像上面所說,它只是提供了乙個針對tcp或者udp程式設計的介面。

<1>socket是乙個針對tcp和udp程式設計的介面,你可以借助它建立tcp連線等等。而tcp和udp協議屬於傳輸層 。

而http是個應用層的協議,它實際上也建立在tcp協議之上(http是轎車,提供了封裝或者顯示資料的具體形式;socket是發動機,提供了網路通訊的能力)。

<2>socket是對tcp/ip協議的封裝,socket本身並不是協議,而是乙個呼叫介面(api),通過socket,我們才能使用tcp/ip協議。socket的出現只是使得程式設計師更方便地使用tcp/ip協議棧而已,是對tcp/ip協議的抽象,從而形成了我們知道的一些最基本的函式介面。

Socket和Http之間的區別和概述

推薦必看 socket和http的區別 http協議 簡單的物件訪問協議,對應於應用層。http協議是基於tcp鏈結的。tcp協議 對應於傳輸層 ip協議 對應與網路層 tcp ip是傳輸層協議,主要解決資料如何在網路中傳輸 而http是應用層協議,主要解決如何包裝資料。socket是對tcp ip...

HTTP 和 Socket 的區別

要弄明白 http 和 socket 首先要熟悉網路七層 物 數 網 傳 會 表 應,如圖1 如圖1http 協議 超文字傳輸協議,對應於應用層,用於如何封裝資料.tcp udp 協議 傳輸控制協議,對應於傳輸層,主要解決資料在網路中的傳輸。ip 協議 對應於網路層,同樣解決資料在網路中的傳輸。傳輸...

HTTP 和 Socket 的區別

要弄明白 http 和 socket 首先要熟悉網路七層 物 數 網 傳 會 表 應,如圖1 如圖1http 協議 超文字傳輸協議,對應於應用層,用於如何封裝資料.tcp udp 協議 傳輸控制協議,對應於傳輸層,主要解決資料在網路中的傳輸。ip 協議 對應於網路層,同樣解決資料在網路中的傳輸。傳輸...