`

tcp http socket相关介绍

阅读更多

,Http协议是应用层协议,对传输层Tcp协议进行了封装,是无状态协议

术语 TCP/IP代表传输控制协议/网际协议,指的是一系列协议。“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络。把IP 想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。
    你应该能理解,TCP和UDP是FTP,HTTP和SMTP之类使用的传输层协议。虽然TCP和UDP都是用来传输其他协议的,它们却有一个显著的不同:TCP提供有保证的数据传输,而UDP不提供。这意味着TCP有一个特殊的机制来确保数据安全的不出错的从一个端点传到另一个端点,而UDP不提供任何这样的保证。

    HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。

    记住,需要IP协议来连接网络;TCP是一种允许我们安全传输数据的机制,,使用TCP协议来传输数据的HTTP是Web服务器和客户端使用的特殊协议。



Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口



--稍微了解
java.net.URL源码、
http://www.docjar.com/html/api/org/apache/harmony/luni/internal/net/www/protocol/http/HttpConnection.java.html和
http://www.docjar.com/html/api/org/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java.html以及
http://www.docjar.com/html/api/org/apache/harmony/luni/internal/net/www/protocol/http/Handler.java.html
相关代码。
也可以看看
http://zhoujianghai.iteye.com/blog/1195988


1、对于urlconnection的定义:
  langyu:如果用户想通过应用层往其它地方发送数据,就得使用应用层封装的“接口”-用户不用管它后面是如何传输与通信的 - URLConnection就可以理解为这层接口。
  也就是那句话,urlconnection是对socket的封装
2、对于socket的定义:
  逻辑连接控制。可以很通俗的理解为“电话机”,还有langyu提到的“港口”。
  比如我要给某人电话,我直接拨号就可以,不用关心电信号的转换和传播,在港口我要发货,你告诉我地址就可以,货物就会发往目标港口。
  就是说, new Socket("192.168.1.100",8888) 在不抛出异常的情况下,逻辑上的连接就已经建立了 。

共同点:
都可以与服务器建立连接

不同点:
引用 Cindy_Lee
本质上都是socket传输报文,只是用UrlConnection传输的报文是http协议格式的(其实就是多出一个http协议的报文头)
作用上来说 用UrlConnection连接,服务器可以是一些常用的web服务器,而用socket连接的服务器不能用web服务器,除非你模拟传输http协议的报文

不知道这样理解对不对?

对于用urlconnection还是socket呢, 我觉得,如果是web服务器,则urlconnection 。 如果是serversocket (一般成对出现)
那么使用socket 建立连接 。
我会回做个试验,看看urlconnection能不能连接serversocket
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics