1、容器与服务器的联系
如上图,我们先来看下容器与服务器的联系:容器是位于应用程序/组件和服务器平台之间的接口集合,使得应用程序/组件可以方便部署到服务器上运行。 2、各种容器的区别/联系
一般来说,它处理屏蔽了服务器平台的复杂性,使得应用程序在它的基础上可以方便快捷的部署;而对于应用程序来说,它就是位于应用程序和平台之间的接口集合。 容器管理组件的生命周期,向应用程序组件分派请求,并提供与上下文数据(如关于当前请求的信息)的接口。 注意,容器技术虚拟化(如Docker 应用容器引擎)不在本文关注范围内。 2-2、Servlet容器 Servlet程序:Java提供了开发Servlet程序的API,该API可以说Servlet容器的一部分,它对接应用程序与Servlet容器; Servlet容器:就是实现了Servlet技术规范的部署环境,它可以部署运行Servlet程序。 2-3、Java WEB容器 Java WEB容器:实现了Java EE规定的WEB应用技术规范的的部署环境。 Java EE WEB应用技术规范:Servlet、JSP(JavaServer Pages)、Java WebSocket等。 所以,完整的Java WEB容器包含Servlet容器。 2-4、Java EE容器 Java EE技术规范:除了上面说的Servlet、JSP等Java EE WEB应用技术规范,还包括EJB(Enterprise JavaBeans)等许多技术规范。 所以,完整的Java EE容器包含Java WEB容器(Servlet容器)、EJB容器等。 3、各种服务器的区别/联系
简单来说,服务器是提供某些服务的设备。 3-2、应用服务器 应用服务器:就是运行应用程序,提供应用程序所实现服务的设备。 通常来说,服务器端的应用程序实现各种业务逻辑,应用服务器通过各种协议把这些业务逻辑曝露给客户端的程序。它提供了访问商业逻辑的途径,以供客户端应用程序使用。应用服务器使用此业务逻辑就像调用对象的一个方法一样。应用服务器处理业务逻辑,即动态请求,还包含集群,故障切换,负载均衡。 3-3、WEB服务器 WEB服务器:一般指网站服务器,可以向浏览器等WEB客户端提供文档浏览、数据文件下载等WEB服务。 简单来说,WEB服务器是提供网上信息浏览等WEB服务的设备。WEB服务器(apache http server,nginx)置于应用服务器(tomcat,jboss,weblogic,websphere)前端,用来处理来自客户端的静态请求,如JavaScript脚本和图片 3-4、WEB应用服务器 如果不严格区分,应用服务器包含WEB服务器,因为WEB服务器是WEB服务应用程序实现的。 WEB应用服务器:结合应用服务器和WEB服务器,可以说,它是带应用服务器的Web服务器,接收HTTP请求后,既能返回页面等静态内容,又能处理业务逻辑返回数据。 3-5、Java EE服务器 Java EE服务器有时称为应用服务器,因为它们允许您向客户端提供应用数据,就像Web服务器向Web浏览器提供Web页面一样。 4、举例说明容器以及服务器的联系 但是可以用它们来构建WEB应用服务器,通常它们发现一个请求是动态请求,就通过CGI、ISAPI、特殊管道等协议接口调用后面的应用服务器来协同处理请求。如Nginx通过fastCGI模块来调用ZendEngine执行PHP应用来处理PHP请求。 4-2、Tomcat、Jetty、WebLogic、Websphere、JBoss 拿最常用的Tomcat来说,Tomcat是Java Servlet,JavaServer Pages,Java Expression Language和Java WebSocket(Java EE)技术的开源实现。 因为可以通过HTTP提供HTML页面等静态内容的请求访问,所以是一个WEB服务器; 因为实现了Servlet规范,所以也是一个Servlet容器,可以运行Servlet程序; 因为可以通过Servlet容器,调用Servlet处理动态请求,所以也是一个应用服务器; 所以,可以说Tomcat是Java(EE) WEB应用服务器。 4-3、Nginx + Tomcat的WEB应用服务器(集群)
|
|
来自: gjonline藏书 > 《技术资料》