我可以知道应用程序服务器和 Web 服务器之间的区别吗?请列出每个例子。
4 回答
“网络服务器”通常是使用http(或https)协议提供内容的任何服务器程序。这些服务器倾向于侦听特定端口(80 或 443)。这些客户端通常是 Web 浏览器,例如 Chrome、Firefox 或 Internet Explorer。
Web 服务器示例:Apache、Microsoft IIS
“应用服务器”是一个更加模糊、定义不明确的术语。它可以指任何对给定应用程序的客户端请求提供响应的程序。
在 Web 服务的上下文中,“应用程序服务器”往往是指用于生成动态内容的更高级别的框架。这可能是某种容器,您可以在其中部署特定的“Web 应用程序”。示例包括 Apache Tomcat、WebSphere、JBoss 等。
在这两种情况下,该术语也可以指托管软件来执行这些操作的机器硬件。
Web 服务器是一个容器,用于像 servlet/jsp 容器这样的简单操作。应用服务器是一个类似于 Web 服务器的容器,但比 Web 服务器添加了更多操作,如事务管理器、数据源、集群、负载平衡、消息传递和其他复杂的业务操作。
Web 服务器,如 Apache Tomcat。
应用服务器,如 jboss、glassfish、web sphere、oracle 应用服务器。
Web 服务器有时可以充当应用程序服务器(例如,当它托管 Web 服务时)。但是,应用程序服务器不必实现为 Web 服务器。它可以只监听 tcp 套接字并采取相应的行动
网络服务器
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 浏览器中显示,而应用程序服务器提供对业务逻辑的访问以供客户端应用程序使用。应用程序可以像调用对象(或过程世界中的函数)上的方法一样使用此逻辑。
此类应用服务器客户端可以包括在 PC、Web 服务器或什至其他应用服务器上运行的 GUI(图形用户界面)。在应用服务器和它的客户端之间来回传输的信息不限于简单的显示标记。相反,信息是程序逻辑。由于逻辑采用数据和方法调用的形式而不是静态 HTML,因此客户端可以根据需要使用公开的业务逻辑。
In most cases, the server exposes this business logic through a component API, such as the EJB (Enterprise JavaBean) component model found on J2EE (Java 2 Platform, Enterprise Edition) application servers. Moreover, the application server manages its own resources. Such gate-keeping duties include security, transaction processing, resource pooling, and messaging. Like a Web server, an application server may also employ various scalability and fault-tolerance techniques.