1 数据传输方式
1.1 socket传输的定义和其特点
    所谓socket通常也称作"套接字",实现服务器和客户端之间的物理连接,并进行数据传输,主要有udp和tcp两个协议。socket处于网络协议的传输层。
    udp协议:广播式数据传输,不进行数据验证
    tcp协议:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流。

socket传输的特点:
   优点
   1) 传输数据为字节级,传输数据可自定义,数据量小(对于手机应用讲:费用低)
   2) 传输数据时间短,性能高
   3) 适合于客户端和服务器端之间信息实时交互
   4) 可以加密,数据安全性强
   缺点:
   1) 需对传输的数据进行解析,转化成应用级的数据
   2) 对开发人员的开发水平要求高
   3) 相对于http协议传输,增加了开发量

socket传输适用范围
  基于socket传输的特点 : socket 传输方式适合于对传输速度,安全性,实时交互,费用等要求高的应用中,如网络游戏,手机应用,银行内部交互等

1.2 基于http协议传输的定义和其特点

目前基于http协议传输的主要有http协议 和基于http协议的soap协议(web service),常见的方式是 http 的post 和get 请求,web 服务。

基于http协议的传输特点

优点:
   1) 基于应用级的接口使用方便
   2) 程序员开发水平要求不高,容错性强
   缺点:
   1) 传输速度慢,数据包大(http协议中包含辅助应用信息)

2) 如实时交互,服务器性能压力大。

3) 数据传输安全性差

基于http协议传输的适用范围
   基于http协议传输的特点:基于http协议传输方式适合于对传输速度,安全性要求不是很高,且需要快速开发的应用。如公司oa系统,互联网服务等

WebService与Socket的区别

区别1.

Socket是基于TCP/IP的传输层协议。

WebService是基于HTTP协议传输数据的,HTTP是基于TCP的应用层协议。

区别2.

WebService采用了基于HTTP的SOAP协议传输数据,接口支持面向对象,最终WebService会将对象进行序列化后通过流传输。

Socket接口直接通过流进行传输,不支持面向对象。

Socket在传输层,WebService在应用层。。http 协议基于socket,此外,web service基于http协议和soap。

【结论】

WebService采用SOAP协议进行传输,底层是基于Socket通信的。

WebService不需要针对数据流的发送和就收进行处理,是一种跨平台的面向对象远程调用技术。

socket和webservice都有跨平台的优点,但是:
        socket偏底层,效率高,但是开发成本大。
        webservice效率低,但是开发成本低廉。

【Socket和WebService应用场景】

[ socket ]

socket通信的即时性比http好。socket 是基于传输层的,http基于应用层,socket是一切通过端口通信的基础(包括http)

Socket处于是OSI 7层协议中的第四层(传输层)  Socket仅仅是传输层抽象在OS基础上的一个接口而已。

适用于传输大数据量的数据。

缺点:由于传输的数据需要手动解析,socket通信的接口协议需要自定义,比如:自定义一种字符串拼接的格式,或者自定义的XML数据,自定义的麻烦之处在于接口调用方法和接口服务端需要相互讨论确定接口的协议内容,不方便。

优点:适合传输大数据量的数据。

常重要的SOAP是应用层的一个协议,而SOAP通常绑定的Http协议也是第七层的一种协议。Socket效率高,但容易被防火墙屏蔽。

socket,提供了tcp/ip或者udp的通信的实现,如果做标准的服务器,比如下载服务器;或者语音通信的程序,或者视频,文件传输……这些只能用socket。
单纯用socket写会很烦的,你要处理各种东西,协议的编解码等等,所以这种情况下推荐mina,netty或者grizzly。

[ WebService ]

WebService遵循标准的SOAP协议,SOAP协议的内容格式固定,SOAP协议传递的内容是XML数据,由于WebService是基于HTTP的,所以简单理解SOAP=HTTP+XML,因为WebService要经过两次序列化,所以导致其传输速度慢,适用于没有性能要求且数据传输量小的场景,推荐在公开接口上使用WebService。

webservice基于HTTP协议,因此可以利用现有非常成熟的Web集群来提供高负载,同比之下 socket就非常难。
webservice离不开web服务器(apache),web服务器是一个在公网上提供http通信的服务器.webservice 一般都建立在web服务器上,以供别人调用。

WebService效率差点,走http协议,一般不会被防火墙屏蔽。

webservice,基于http协议,以xml为载体的通信方式。
    好处:一直观,二标准,也方便异构系统的交互。
    如果想提供对外的业务访问的接口,可能需要浏览器,各种语言的客户端等各种异构系统访问,是首选。

我觉得把socket和http、webservices等等放在一起对比不是很合适,所谓http的都是对socket进行了一次包装而已,后者更加底层。

http webservice socket的区别的更多相关文章

  1. 转:WCF、WebAPI、WCFREST、WebService之间的区别

    WCF.WebAPI.WCFREST.WebService之间的区别   注明:转载 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API ...

  2. TCP/IP,HTTP,Socket的区别与联系

    一 忆往昔,尽是悔恨泪.       在学校的时候学过,网络七层,也知道tcp的三次握手.但因为根本没用在实际开发中,所以逐渐淡忘.现在就再次理解下三个的区别与联系. 二 正题       网络七层: ...

  3. Http、tcp、Socket连接区别

    转自Http.tcp.Socket连接区别 相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过自己的浅显理解能对初学者有所帮助. 1.TCP连接 要想明白Sock ...

  4. TCP/IP、Http、Socket的区别与关系

    --TCP/IP.Http.Socket的区别与关系 --------------------------------------2014/05/14 网络由下往上分为 物理层.数据链路层.网络层.传 ...

  5. WebSocket和Socket的区别

    前段时间写了两篇介绍HTTP和WebSocket的文章,回复中有人说希望了解下WebSocket和Socket的区别.这个问题之前也有想过,自己对此是有大概的答案,可是并不太确定,于是去搜集了些资料( ...

  6. TCP socket和web socket的区别

    小编先习惯性的看了下某中文百科网站对Web Socket的介绍,觉得很囧.如果大家按照这个答案去参加BAT等互联网公司的前端开发面试,估计会被鄙视. 还是让我们阅读一些英文材料吧. 让我们直接看sta ...

  7. TCP/IP、Http、Https、Socket的区别

    网络由下往上分为物理层.数据链路层.网络层( IP协议).传输层( TCP协议).会话层.表示层和应用层(HTTP协议) 接下来我来说说个人理解其中的TCP/IP.Http.Socket的区别 TCP ...

  8. tcp、http和socket的区别

    本文原链接:https://www.jianshu.com/p/88d69454bdde tcp.http和socket的区别 一:tcp协议 tcp协议属于传输层协议(UDP也属于传输层协议,但是U ...

  9. WebSocket 和 Socket 的区别

    WebSocket 和 Socket 的区别   英文:TheAlchemist 链接:http://www.jianshu.com/p/59b5594ffbb0 <刨根问底 HTTP 和 We ...

随机推荐

  1. 分布式缓存设计:一致性Hash算法

    缓存作为数据库前的一道屏障,它的可用性与缓存命中率都会直接影响到数据库,所以除了配置主从保证高可用之外还需要设计分布式缓存来扩充缓存的容量,将数据分布在多台机器上如果有一台不可用了对整体影响也比较小. ...

  2. MySQL<多表操作>

    多表操作 外键 什么是外键 外键是指引用另一个表中的一列或多列,被引用的列应该具有主键约束或唯一性约束. 外键用于建立和加强两个表数据之间的链接. 为表添加外键约束 想要真正连接两个表的数据,就需要为 ...

  3. Effective C++ Item 13 Use object to manage resources

    1. Always use object to manage resource! If you delete a pointer or release a handler manually by yo ...

  4. Windows10下安装python(配置环境变量)

    从官网下载Windows下的python版本,一路按照默认进行安装. 安装之后配置环境变量的步骤如下: 1,点“我的电脑”,右键选“属性”. 2,选择“高级系统设置”--->选“环境变量”--- ...

  5. 什么是LTE?

    LTE是英文Long Term Evolution的缩写.LTE也被通俗的称为3.9G,具有100Mbps的数据下载能力,被视作从3G向4G演进的主流技术.它改进并增强了3G的空中接入技术,采用OFD ...

  6. 在实际项目开发中keil的调试方法

    转载2015-06-14 20:23:04 一.在keilc的调试状态下,如何观察各个片内外设的运行状态?如何修改它们的设置?​ 在调试状态下,点击Peripherals菜单下的不同外设选项命令,就会 ...

  7. mysql触发器的实战经验-不错的文章

    1   引言 Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序.触发器是mysql5新增的功能,目前线上凤巢系统.北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多 ...

  8. linux制作RPM包

    制作rpm包 1.制作流程1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好制 ...

  9. 【BZOJ4101】[Usaco2015 Open]Trapped in the Haybales Silver 二分

    [BZOJ4101][Usaco2015 Open]Trapped in the Haybales (Silver) Description Farmer John has received a sh ...

  10. jdbc将数据库连接信息放置配置文件中

    目录如下: jdbcConnection.java: package jdbc01; import java.io.InputStream; import java.sql.Connection; i ...