Web服务器与应用服务器

14

应用服务器是在 Web 服务器之上提供应用服务的另一层吗?

应用服务器是否总是以 Web 服务器为核心?

两者有何区别?

3个回答

21
不,应用服务器不包含Web服务器...
请阅读以下文章...

http://www.answers.com/topic/application-server

http://download.oracle.com/docs/cd/E19159-01/819-3671/ablat/index.html

基本上:

在1990年代中期互联网爆发后,应用服务器变成了基于Web的。

以下内容展示了Web服务器、Web容器和应用服务器之间的区别...

Web服务器、Web容器和应用服务器之间的区别

Web服务器是一种能够接收HTTP请求、解释它们、处理相应的HTTP响应并将它们发送到适当客户端(Web浏览器)的服务器。例如:Apache Web服务器。阅读更多关于Web服务器及其工作方式的信息>>

Web容器是一个符合J2EE规范的实现,提供了Servlet和JSP运行的环境。换句话说,我们可以说Web容器是Servlet引擎和JSP引擎的组合。如果一个HTTP请求引用了一个Web组件(通常是Servlet或JSP),那么该请求将被转发到Web容器,并将请求的结果发送回Web服务器,后者使用该结果为特定的HTTP请求准备HTTP响应。例如:Tomcat是一个典型的Web容器。一个典型的设置是将Apache HTTP服务器作为Web服务器,将Tomcat作为Web容器。

应用服务器是一个完整的服务器,除了提供Web容器的功能外,还提供运行业务组件(EJB、ADF BC等)的环境。例如:BEA WebLogic、IBM WebSphere、Oracle应用服务器等。


7
实际上,随着互联网的爆炸性增长,尤其是“Web服务”的出现,所有现代应用服务器都可以充当Web服务器。例如,当前版本的Tomcat包括内置的Web服务器功能,因此您不再需要运行单独的Apache HTTP服务器。过去,运行单独的专用Web服务器(如Apache)更可取,因为应用服务器针对应用服务器而优化,而不是针对Web服务器进行处理;但是应用服务器作为Web服务器的性能已经提高,以至于任何剩余的性能差异都是无关紧要的 - 并且肯定不能证明运行单独的服务器的费用是合理的。
今天,主要区别在于应用服务器旨在支持编程语言,例如Java或在.net平台上的C# - 以及提供包括自动容错、会话管理、事务管理、多线程和构建可扩展企业应用所需的一切基础设施。当前的Web服务器旨在支持诸如Ruby、PHP、Python和Perl之类的语言,并缺乏应用服务器的内置基础设施。
然而,应用服务器和Web服务器之间的区别正在变得模糊,并将继续随着“Web服务”变得越来越流行以及像Ruby这样的语言成熟,因此需要Web服务器提供与今天的应用服务器相同的底层基础设施。最终,主要区别将是(目前还没有):如果您想使用Java或C#开发应用程序的后端(云)层,请使用应用服务器;如果您想使用Ruby、PHP或Perl开发应用程序,请使用Web服务器。

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接