Android Http連線和TCP連線的區別

2021-06-10 02:27:58 字數 1266 閱讀 1126

最近看到**裡提到某個架構選用tcp連線而不是http連線,意識到自己不知道這兩者的區別,遂查資料補一下知識。

再用自己的話總結提煉一下:

題目是android http連線和tcp連線的區別,因為我關注的使用場景是android環境,其實不管是android還是pc,應該都是一樣的。

http是應用層協議,tcp是網路層協議,應用層在tcp/ip四層架構中位於tcp的上一層。建立http連線在實現時有以下兩種方式

connection.connect();而tcp連線在實現時要借助socket(套接字 ip+埠號)

socket s = new socket("localhost", 12345);

我覺得區別從這兩個連線的實現方式就可以看出來,

連線需要指明資源的

url,發出請求的應用不知道伺服器的

ip,雖然網域名稱伺服器也是要把網域名稱解析成

ip位址,但不屬於應用所關心的範疇,是網路層應該完成的工作。所以

連線屬於無狀態的短連線,若再請求其他資料,需要再重新建立連線。客戶端向伺服器傳送請求後,伺服器才知道客戶端的存在。

tcp連線實現時需要指明

ip位址和埠號,就可以跟目的主機通過三次握手建立聯絡,該連線一直保持直到某一方提出取消連線,通過四次握手關閉連線。

socket

支援tcp/udp

協議,如果使用

tcp協議,那麼

socket

連線就是

tcp連線。**提到的應用場景是手機與雲端的伺服器建立聯絡,因為要保持連線並指定連線的建立時間,所以在這種場景下使用

tcp連線最合適。

3g網路不支援端到端建立

tcp連線,因為它是

client-server

模式,所以需要通過雲端伺服器的輔助來實現手機的端到端通訊。

Android Http連線之GET POST請求

在android sdk中提供了apache httpclient org.apache.http.模組。在這個模組中涉及到兩個重要的類 httpget和httppost。建立步驟 1 建立httpget 或httppost 物件,將要請求的url通過構造方法傳入httpget 或httppost ...

Android Http連線之GET POST請求

在android sdk中提供了apache httpclient org.apache.http.模組。在這個模組中涉及到兩個重要的類 httpget和httppost。建立步驟 1 建立httpget 或httppost 物件,將要請求的url通過構造方法傳入httpget 或httppost ...

Android Http連線之GET POST請求

在android sdk中提供了apache httpclient org.apache.http.模組。在這個模組中涉及到兩個重要的類 httpget和httppost。建立步驟 1 建立httpget 或httppost 物件,將要請求的url通過構造方法傳入httpget 或httppost ...