Http與Socket編程小談

http與socket是網絡編程中最為重要的概念,不管是客戶端還是服務端,都是最為重要的部分,以下簡述兩者的關系和區別(個人見解)。

Http

定義

基于應用層的超文本傳輸協議。通常承載于TCP/IP協議之上,有時也承載于TLS或SSL協議層之上,即https。

特點

  • 必須是客戶端請求,服務端才能響應,無法由服務端自主發起。
  • 網絡連接為短連接,在請求結束后,就會自動釋放本次連接。

優點

  • 基于應用層的接口,簡單易用,非常容易上手,對開發者要求較低

缺點

  • 傳輸速度有限,數據量較大
  • 對服務器性能要求較高
  • 數據傳輸過程中安全性有限

適用范圍

  • 需要快速開發的應用
  • 對數據實時交互性要求不太高的應用
  • 對數據安全性不是太高要求的應用
  • 對服務器性能較差的應用

Socket

定義

基于TCP/IP的網絡API,處于傳輸層,用于提供給程序員操作TCP/IP網絡傳輸的應用程序接口。通常稱作"套接字",實現服務器和客戶端之間的物理連接,并進行數據傳輸。是應用層和傳輸層之間的橋梁。

特點

  • 建立socket連接至少需要一對套接字(socket),一個運行在客戶端,一個運行在服務端
  • 通常Socket連接是基于TCP連接的,因此屬于長連接
  • Socket一旦建立連接,通信雙方即可持續相互發送數據內容,直到雙方連接斷開

優點

  • 傳輸數據可自定義,數據量很小
  • 數據傳輸時間段,性能高
  • 多用于客戶端與服務端之間的數據實時交互
  • 可以使用加密手段,數據安全性很高

缺點

  • 相對于http協議傳輸,開發量較大
  • 對開發人員的開發水平要求較高,增加開發量

適用范圍

  • 適用于對傳輸速度要求高的應用,如網絡游戲
  • 適用于對數據安全性要求較高的應用中,如銀行內部數據交互
  • 對產生流量巨大的應用
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.1 TCP/IP協議組 TCP/IP協議(傳輸控制協議)由網絡層的IP協議和傳輸層的TCP協議組成 IP層負責...
    F麥子閱讀 2,837評論 0 25
  • iOS網絡HTTP、TCP、UDP、Socket 知識總結OSI 七層模型我們一般使用的網絡數據傳輸由下而上共有七...
    蝸牛也有夢想閱讀 2,440評論 0 3
  • 參考:http://www.2cto.com/net/201611/569006.html TCP HTTP UD...
    F麥子閱讀 2,976評論 0 14
  • 山水之間 有些事情不能說 比如說山吧,總把 自己看得太重,不把 水放在眼里。直至水歷經 萬水千山到達海洋世界后 才...
    吾平閱讀 453評論 22 51
  • 嘆 十年一瞬 光陰走過之前 我們 素面朝天 笑得放肆 愛得純粹 天空很藍 未來很遠 可 十年漫長 時光雕刻之后 我...
    墨黎雪閱讀 228評論 2 3