socket servlet webservice 区别及使用场景

原文地址:

http://blog.csdn.net/sdjkjsdh/article/details/51569481

1、

Socket:使用TCP/IP或者UDP协议在服务器与客户端之间进行传输的技术,是网络编程的基础

Servlet:使用http协议在服务器与客户端之间通信的技术。是Socket的一种应用。

2、

tcp/ip协议:关注的是客户端与服务器之间的数据传输是否成功(三次握手,传输失败会重发)

http协议:是在tcp/ip协议之上进一步封装的一层协议,关注的事数据传输的格式是否规范,底层的数据传输还是运用了socket和tcp/ip

Socket 的连接是有状态的,一旦两边连接上了,将一直保持连接,除非人为断开。一般用于游戏,需要持续的网络畅通

URLConnection和HttpURLConnection使用的都是Java.NET中的类,属于标准的java接口。
HttpURLConnection继承自URLConnection,差别在与HttpURLConnection仅仅针对Http连接。
HttpURLConnection或URLConnection连接完成后不会保持连接状态。

例如浏览器访问网址,页面加载完成后,将断开连接,如果再点击,会再次连接

利用socket进行通信时,在服务器端运行一个socket通信程序。服务器端不停地监听某个端口,等待客户的连接申请,接到申请后建立连接并进行通信,所以,在socket通信方式中,服务器是主动等待连接通信的到来。

利用URL进行通信时,在服务器端常驻一个CGI程序,但它一直处于休眠状态。只有在客户端要求建立连接时才被激活,然后与用户进行通信。所以,在URL 通信方式中,服务器是被动等待连接通信的到来。

由于URL通信和socket通信的方式不同,所以,它们有各自的特点。

利用socket进行通信时,服务器端的程序可以打开多个线程与多个客户进行通信,还可以通过服务器使各个客户之间进行通信。这种方式比较灵活,适用于一些较复杂的通信,但是服务器端的程序必须始终处于运行状态以监听端口。

利用 URL进行通信时,服务器端的程序只能与一个客户进行通信,形式比较单一。但是它不需要服务器端的CGI程序一直处于运行状态,只是在有客户申请时才被激活。所以,这种方式比较适用于客户机的浏览器与服务器之间的通信。
时间: 2024-10-19 09:08:48

socket servlet webservice 区别及使用场景的相关文章

Filter与Servlet的区别和联系

Filter的执行顺序与实例 Filter介绍 Filter可认为是Servlet的一种“变种”,它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链.它与Servlet的区别在于:它不能直接向用户生成响应.完整的流程是:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理. Filter有如下几个用处. 在HttpServletRequest到达Servlet之前,拦截客

jsp与servlet的区别

Servlet与Jsp的区别 * Servlet中没有内置对象,原来Jsp中的内置对象都是必须通过HttpServletRequest对象,或由 HttpServletResponse对象生成. * 对于静态的HTML标签,Servlet都必须使用页面输出流诼行输出. 总之,Jsp是Servlet的一种简化,使用Jsp只需要完成程序员需要输出到客户端的内容,至于Jsp中的 Java脚本如何镶嵌到一个类中,由Jsp容器完成.而Servlet则是个完整的Java类,这个类的Service 方法用于生

Android Support v4、v7、v13的区别和应用场景

google提供了Android Support Library package 系列的包来保证来高版本sdk开发的向下兼容性,即我们用4.x开发时,在1.6等版本上,可以使用高版本的有些特性,如fragement,ViewPager等,下面,简单说明下这几个版本间的区别: Android Support v4:  这个包是为了照顾1.6及更高版本而设计的,这个包是使用最广泛的,eclipse新建工程时,都默认带有了.     Android Support v7:  这个包是为了考虑照顾2.1

UrlConnection连接和Socket连接的区别

关于UrlConnection连接和Socket连接的区别,只知道其中的原理如下:抽象一点的说,Socket只是一个供上层调用的抽象接口,隐躲了传输层协议的细节.urlconnection 基于Http协议,Http协议是应用层协议,对传输层Tcp协议进行了封装,是无状态协议,不需要你往考虑线程.同步.状态治理等,内部是通过socket进行连接和收发数据的,不过一般在数据传输完成之后需要封闭socket连接.直接使用Socket进行网络通讯得考虑线程治理.客户状态监控等,但是不用发送头信息等,更

hibernate与mybatis的区别和应用场景

mybatis 与 hibernate 的区别和应用场景(转) 1    Hibernate : 标准的ORM(对象关系映射) 框架: 不要用写sql, sql 自动语句生成: 使用Hibernate 对sql 进行优化,修改比较困难 应用场景: 试用需求,变化固定中小型项目:ERP,ORM,OA 2   mybatis: 程序员自己编写sql, sql 修改,优化比较自由. mybatis 是一个不完全的ORM 框架(部分), mybatis 存在 映射关系(输入,输出映射): 应用场景: 除

list set map区别及适用场景

list与Set.Map区别及适用场景 1.List,Set都是继承自Collection接口,Map则不是 2.List特点:元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素不可重复,重复元素会覆盖掉,(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的,加入Set 的Object必须定义equals()方法 ,另外list支持for循环,也就是通过下标来遍历,也可以用迭代器,但是set只能用迭代,因为他无序,无法用下标来取得

socket、webService、RMI ?

网络七层协议为:物理层.数据链路层.网络层.传输层.会话层.表示层.应用层 webService > RMI > socket RMI比socket更高一点 socket 只是 java在网络层定义的类,用来实现网络层.上面的各层需要我们自己在程序里实现. 例如端口可以自己定义 .数据包的定义. 数据包的加密解密等 而webService java实现了应用层的工具,他基于的服务为http协议,通过服务器才可以发布出去. 这样内部的端口的定义.数据包的定义和数据包的加密解密都做好了,所以我们就

session,cookie,sessionStorage,localStorage的区别及应用场景

session,cookie,sessionStorage,localStorage的区别及应用场景 浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. 一.cookie和session cookie和session都是用来跟踪浏览器用户身份的会话方式. 区别: 1.保持状态:cookie保存在浏览器端,session保存在服务器端 2.使用方式: (1)cookie机制:如果不在浏览器中设置过期时间,cookie被保存在内存中

TCP/IP Http 和Https socket之间的区别

TCP/IP Http 和Https  socket之间的区别 TCP/IP是个协议组,它分为网络层,传输层和应用层, 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应用层有FTP.HTTP.TELNET.SMTP.DNS等协议. TCP 是传输层协议,主要解决数据如何在网络中传输的,TCP连接是长连接第一次握手:客户端发送请求包到服务器,等待服务器确认第二次握手:服务器响应客户端请求,同时也发送一个回应包给客户端第三次握手