日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HTTP 和 Socket 的区别

發布時間:2025/3/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTTP 和 Socket 的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

要弄明白?http 和 socket?首先要熟悉網絡七層:物 數 網 傳 會 表 應,如圖1

如圖1

HTTP 協議:超文本傳輸協議,對應于應用層,用于如何封裝數據.

TCP/UDP?協議:傳輸控制協議,對應于傳輸層,主要解決數據在網絡中的傳輸。

IP 協議:對應于網絡層,同樣解決數據在網絡中的傳輸。

傳輸數據的時候只使用 TCP/IP 協議(傳輸層),如果沒有應用層來識別數據內容,傳輸后的協議都是無用的。

應用層協議很多 FTP,HTTP,TELNET等,可以自己定義應用層協議。

web 使用 HTTP 作傳輸層協議,以封裝 HTTP 文本信息,然后使用 TCP/IP 做傳輸層協議,將數據發送到網絡上。

?

一、HTTP 協議

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

HTTP連接使用的是"請求-響應"方式,不僅在請求時建立連接,而且客戶端向服務器端請求后,服務器才返回數據。

?

二、Socket?連接

要想明白 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 連接,則服務器需要等客戶端發送請求后,才能將數據回傳給客戶端。

因此,客戶端定時向服務器端發送請求,不僅可以保持在線,同時也詢問服務器是否有新數據,如果有就將數據傳給客戶端。

?

參考原文:http://www.cnblogs.com/xclidongbo/p/4032904.html?utm_source=tuicool&utm_medium=referral

?

總結

以上是生活随笔為你收集整理的HTTP 和 Socket 的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。