我能为您解答应用服务器和Web服务器之间的区别吗?请列举每种类型的示例。
我能为您解答应用服务器和Web服务器之间的区别吗?请列举每种类型的示例。
Web服务器是一个用于简单操作的容器,例如Servlet/JSP容器。
应用服务器是类似于Web服务器的容器,但比Web服务器添加了更多的操作,如事务管理器、数据源、集群、负载平衡、消息传递和其他复杂的业务操作。
像Apache Tomcat这样的是Web服务器。
像JBoss、Glassfish、WebSphere、Oracle应用服务器这样的是应用服务器。
Web服务器
Web服务器处理HTTP协议。当Web服务器接收到HTTP请求时,它会回应一个HTTP响应,例如发送回一个HTML页面。为了处理请求,Web服务器可能会回应一个静态的HTML页面或图像,发送一个重定向,或者将动态响应生成委派给其他程序,如CGI脚本、JSP(JavaServer Pages)、Servlet、ASP(Active Server Pages)、服务器端JavaScript或其他服务器端技术。无论其目的是什么,这些服务器端程序都会生成一个响应,通常是HTML,供在Web浏览器中查看。
要理解Web服务器的委派模型相当简单。当请求进入Web服务器时,Web服务器只是把请求传递给最适合处理它的程序。Web服务器除了提供一个执行服务器端程序并传回生成的响应的环境外,不提供任何功能。服务器端程序通常为自己提供事务处理、数据库连接和消息传递等功能。
虽然Web服务器本身可能不支持事务或数据库连接池,但它可以采用各种容错和可扩展性策略,例如负载均衡、缓存和集群,这些功能往往被错误地归属为仅适用于应用服务器的功能。
应用服务器
关于应用服务器,根据我们的定义,应用服务器通过各种协议(可能包括HTTP)向客户端应用程序公开业务逻辑。而Web服务器主要处理将HTML发送到Web浏览器进行显示,应用服务器提供对客户端应用程序使用的业务逻辑的访问。应用程序可以像调用对象上的方法(或者在过程化世界中调用函数)一样使用此逻辑。
这样的应用服务器客户端可以包括运行在个人电脑上的GUI(图形用户界面),Web服务器,甚至其他应用服务器。在应用服务器和其客户端之间传输的信息不仅限于简单的显示标记。相反,这些信息是程序逻辑。由于逻辑以数据和方法调用的形式存在,而不是静态的HTML,客户端可以根据自己的需要使用公开的业务逻辑。
在大多数情况下,服务器通过组件API(例如J2EE(Java 2平台,企业版)应用服务器上找到的EJB(企业JavaBean)组件模型)公开此业务逻辑。此外,应用服务器管理自己的资源。这些门控职责包括安全性、事务处理、资源池化和消息传递。与Web服务器类似,应用服务器还可以使用各种可扩展性和容错技术。