Android Http连接和TCP连接的区别(Android环境)

Http是应用层协议,TCP是网络层协议,应用层在TCP/IP四层架构中位于TCP的上一层。

建立Http连接在实现时有以下两种方式

    DefaultHttpClient http = new DefaultHttpClient();  
    HttpGet method = new HttpGet(url);   
    HttpResponse response =http.execute(method);  
    URL url = new URL(uri);  
    HttpURLConnection connection = (HttpURLConnection)  
    url.openConnection();  
    connection.connect(); 

TCP连接在实现时要借助Socket(套接字 IP+端口号)

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

区别从这两个连接的实现方式就可以看出来,

HTTP连接需要指明资源的URL,发出请求的应用不知道服务器的IP,虽然域名服务器也是要把域名解析成IP地址,但不属于应用所关心的范畴,是网络层应该完成的工作。

所以Http连接属于无状态的短连接,若再请求其他数据,需要再重新建立连接。客户端向服务器发送请求后,服务器才知道客户端的存在。


TCP连接实现时需要指明IP地址和端口号,就可以跟目的主机通过三次握手建立联系,该连接一直保持直到某一方提出取消连接,通过四次握手关闭连接。

Socket支持TCP/UDP协议,如果使用TCP协议,那么socket连接就是TCP连接。提到的应用场景是手机与云端的服务器建立联系,因为要保持连接并指定连接的建立时间,所以在这种场景下使用TCP连接最合适。3G网络不支持端到端建立TCP连接,因为它是client-server模式,所以需要通过云端服务器的辅助来实现手机的端到端通信。

https://blog.csdn.net/heyetina/article/details/8056575

猜你喜欢

转载自www.cnblogs.com/xtxt1127/p/12341508.html
今日推荐