socket是一种协议,采用tcp或udp协议通信。
Tcp、udp属于网络层,上边各层的应用都需要我们自己实现,例如端口的定义,数据包的定义,数据包的加密解密等。
webservice是一种服务,采用HTTP协议通信,Soap作为数据格式。
HTTP协议属于应用层,通过服务器才可以发布,这样内部定义的端口,数据包,加解密都做好了,可以直接使用。
webservice基于HTTP协议,因此可以利用现有非常成熟的Web集群来提供高负载,同比之下 socket就非常难。
网络七层协议从低到高:
1、物理层(Physical Layer)、
2、数据链路层(Data Link Layer)、
3、网络层(Network Layer)、
4、传输层(Transport Layer)、
5、会话层(Session Layer)、
6、表示层(Presentation Layer)、
7、应用层(Application Layer)
webservice一般分为http webservice ,soap webservice两种,都是基于http通信协议的,一般返回xml格式的数据,所以也可以叫做xml webservice.
http webservice 通过get post 两种方法来调用远程的数据服务,适合简单参数的传递(get 直接在url里带上参数);soap webservice通过soap协议传输数据,soap是基于xml标准的,也是就说可以用xml结构的数据来传输参数,这样参数类型可以很复杂,处理远程返回的xml数据时也更方便.
其实soap协议也是基于http协议的.
webservice离不开web服务器(apache),web服务器是一个在公网上提供http通信的服务器.webservice 一般都建立在web服务器上,以供别人调用.
socket 是基于传输层的,http基于应用层,socket是一切通过端口通信的基础(包括http),http://baike.baidu.com/view/13870.htm
使用中,http常用于b/s通信,如web服务器就是用http做传输协议的,socket用于c/s(还有现在的富客户端),应用服务器中常用.socket穿防火墙有问题,而http几乎可以穿过任何防火墙(屏80的不多吧),socket通信的即时性比http好.