http與socket的區別講解及適用場景介紹

2022-09-22 20:00:12 字數 1811 閱讀 9969

tcp/ip是傳輸層協議,主要解決資料在網路中的傳輸.http是應用層的協議,用於如何封裝資料.傳輸資料的時候,只使用tcp/ip協議(傳輸層).如果沒有應用層來識別資料內容,傳輸後的協議都是無用的.

應用層協議很多,ftp,http,telnet等,可以自己定義應用層協議.web使用http作傳輸層協議.以封裝http文字資訊,然後使用tcp/ip做傳輸層協議,將資料傳送到網路上.

socket是對tcp/ip協議的封裝,socket只是個介面,不是協議,通過socket,我們才能使用tcp/ip協議.

當然,除了tcp,也可以使用udp協議來傳遞資料.

三 http和socket連線區別

1 tcp連線

要想明白socket,必須要理解tcp連線.

建立tcp連線的"三次握手":

第一次:客戶端向伺服器傳送syn包(syn=j),同時自己處於syn_send狀態.

第二次:伺服器端收到syn包後,必須確認客戶的syn(syn=j+1),同時也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器進入syn_recv狀態.

第三次:客戶端收到伺服器發來的syn+ack包,就向伺服器傳送syn(syn=k+1),傳送完畢後,伺服器和客戶端都進入established狀態.完成三次握手.

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

2 http連線

http最顯著的特點:客戶端傳送請求都需要伺服器端回送響應.請求結束後,主動釋放鏈結.http是一種短連線.通常的做法是,不需要任何資料,也要保持每隔一段時間向伺服器傳送"保持連線"的請求.這樣可以保證客戶端在伺服器端是"上線"狀態.

3 socket原理

socket連線,至少需要一對套接字,分為clientsocket,serversocket.連線分為3個步驟:

伺服器監聽:伺服器並不定位具體客戶端的套接字,而是時刻處於監聽狀態.

客戶端請求:客戶端的套接字要描述它要連線的伺服器的套接字.提供位址和埠號,然後向伺服器套接字提出連線請求.

連線確認:當伺服器套接字收到客戶端套接字發來的請求後,就響應客戶端套接字的請求,並建立乙個新的執行緒,把伺服器端的套接字的描述發給客戶端,一旦客戶端確認了此描述,就正式建立連線.而伺服器套接字繼續處於監聽狀態,繼續接收其他客戶端套接字的連線請求.

4 socket連線與tcp連線

建立socket連線的時候,可以指定傳輸層協議.可以是tcp或者udp,當用tcp連線,該socket就是個tcp連線.

5 socket連線與http連線

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

http連線使用的是"請求-響應"方式,不僅在請求時建立連線,而且客戶端向伺服器端請求後,伺服器才返回資料.

很多情況下,都是需要伺服器端向客戶端主動推送資料,保持客戶端與服務端的實時同步.若雙方是socket連線,可以由伺服器直接向客戶端傳送資料.若雙方是http連線,則伺服器需要等客戶端傳送請求後,才能將資料回傳給客戶端.因此,客戶端定時向伺服器端傳送請求,不僅可以保持**,同時也詢問伺服器是否有新資料,如果有就將資料傳給客戶端.

http是短連線,類似於平常網頁中請求資訊的點選,安全性較高,socket是長連線,連線之後,只要雙方不主動關閉連線,連線一直存在,安全性較低。每個使用者無需頻繁操作情況下需用短連線好

socket適用場景:網路遊戲,銀行互動,支付。

http適用場景:公司oa服務,網際網路服務。

HTTP 與 Socket的區別

http 與 socket 區別 http 超文字傳輸協議,首先它是乙個協議,並且是基於tcp ip協議基礎之上的應用層協議。tcp ip協議是傳輸層協議,主要解決資料如何在網路中傳輸,http是應用層協議,主要解決如何包裝資料。http協議詳細規定了瀏覽器與伺服器之間相互通訊的規則,是全球資訊網交...

HTTP與Socket的區別

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

Socket與HTTP的區別

socket與http的區別 1 tcp連線 手機能夠使用聯網功能是因為手機底層實現了tcp ip協議,可以使手機終端通過無線網路建立tcp連線。tcp協議可以對上層網路提供介面,使上層網路資料的傳輸建立在 無差別 的網路之上。建立起乙個tcp連線需要經過 三次握手 第一次握手 客戶端傳送syn包 ...