Android Http连接和TCP连接的区别

最近看到论文里提到某个架构选用TCP连接而不是Http连接,意识到自己不知道这两者的区别,遂查资料补一下知识。

参考自以下博客内容:

http://blog.csdn.net/yangzl2008/article/details/7366428

http://blog.csdn.net/xyylchq/article/details/7660915

http://blog.csdn.net/xuyide54321/article/details/7075222


再用自己的话总结提炼一下:

题目是Android Http连接和TCP连接的区别,因为我关注的使用场景是Android环境,其实不管是Android还是PC,应该都是一样的。

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 模式,所以需要通过云端服务器的辅助来实现手机的端到端通信。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值