企业开发中Web服务器与应用服务器的区别联系

admin3年前云服务器76

在企业实际开发中,可以处理用户请求的服务器分为几种基本种类,不同的服务器处理解决不同的问题。这种灵活性为开发人员在应用程序创建和部署方面提供了很大的选择权,但也导致了对各种类型服务器使用场景产生了困惑。

Web服务器

从基本层面上看,用户通常通过Web浏览器向系统提交请求。(为了清楚起见,我们暂时忽略所有其他类型的客户端(RMI,CORBA,C/DC,定制等)Web请求必须由Web服务器接收(也称为HTTP服务器)。该Web服务器必须处理标准的HTTP请求和响应,然后将HTML返回给请求用户。在服务器环境中执行的代码可能是CGI驱动的,Servlet,ASP或其他服务器端编程语言,但最终的结果是Web服务器将HTML传递给用户。

Web服务器可能需要执行一个应用程序来响应用户请求,它可能会生成新闻项目列表,或者处理用户填写的表单内容提交到留言评论区。如果服务器应用程序被编写为JavaServlet,则需要一个地方来执行,而这个地方通常被称为Servlet引擎。根据Web服务器的不同,此引擎可能是内部的,外部的或者其他完全不同的组件。与传统的CGI环境不同,CGI脚本是在每次向服务器发送请求时启动的。这个持久性提供了一个servlet连接,以及一个维护每个HTTP请求之间状态的简单方法。JSP页面通常与servlet引擎绑定在一起,并且会在与servlet相同的空间/应用程序内执行。

有许多产品以不同的方式处理Web服务和Servlet引擎。Netscape/iPlanetEnterpriseServer将Servlet引擎直接构建到Web服务器中并在相同的进程空间内运行。Apache要求servlet引擎在外部进程中运行,并通过TCP/IP套接字与引擎通信。其他服务器(如MSIIS)并未正式支持servlet,并且需要附加产品才能添加该功能。

应用服务器

当你需要使用EnterpriseJavaBeans(以及其他J2EE组件,如JMS和CORBA)时,应用服务器就该上场了。一个应用服务器是提供企业计算相关的附加功能的全面的应用级服务器,例如,负载均衡,数据库访问类,事务处理和消息传递服务等等。

EJB应用服务器提供了一个EJB容器,它是bean将执行的环境,并且该容器将根据需要管理事务,线程池和其他问题。这些应用服务器通常是独立产品,开发人员通过远程对象访问API将他们的servlet/JSP页面绑定到EJB组件中。根据应用程序服务器的不同,程序员可以使用CORBA或RMI与其bean进行通信,但基准标准是使用JNDI根据需要来定位以及创建对EJB引用。

目前,最容易混淆是,许多应用程序服务器提供商在其产品中包含部分或全部这些组件。如果你使用过或者了解过WebLogic,你会发现WebLogic包含Web服务器,servlet引擎,JSP处理器,JMS工具以及EJB容器。理论上,像这样的产品足以应对处理网站开发的各个方面。

在大部分的实践中,你很可能会使用此类产品来管理/提供EJB实例,而专用Web服务器则处理特定的HTTP请求。

总结

现在大多数应用程序服务器也包含了Web服务器,这就意味着可以把Web服务器当作是应用程序服务器的一个子集(subset)。虽然应用程序服务器包含了Web服务器的功能,但是开发者很少把应用程序服务器部署(deploy)成这种功能(capacity)(这种功能是指既有应用程序服务器的功能又有Web服务器的功能)。相反,如果需要,他们通常会把Web服务器独立配置,和应用程序服务器一前一后。这种功能的分离有助于提高性能(简单的Web请求(request)就不会影响应用程序服务器了),分开配置(专门的Web服务器,集群(clustering)等等),而且给最佳产品的选取留有余地。

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

十款Web服务器性能压力测试工具

一、http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把...

Web服务器有哪些类型

Web服务器的类型有:1、IIS,提供图形界面的管理工具,可用于监视配置和控制Internet服务;2、Apache,支持跨平台应用,开源免费,源码开放,有强大的社区支持;3、Nginx,支持高并发和...

Tornado Web服务器中处理空白字符的解决方案

Tornado模板引擎一直有一个坑,有时候你可能觉得并不影响正常使用,但强迫症就是受不了:模板会去掉每行前后的空格。最后出来的页面就是这样:不缩进真的很影响心情的好吧,特别是对一个python开发者。...

Nginx的作用详解,为什么在Web服务器中Nginx的比例越来越高?

Nginx的产生没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(Uniform...

Web服务器租用有哪些常用主机

Web服务器租用常用主机有:1、Apache,当前应用最多的Web服务器;2、Lighttpd,主要是针对高性能网站而设计的轻量级Web服务器;3、Tomcat,它是一款基于Java的web应用软件容...

web服务器软件有哪些?常用的web服务器软件介绍_服务器知识

Web服务器软件有哪些?Web服务器软件是一种用于提供Web服务的程序,主要用于接收和响应客户端的HTTP请求和发送HTTP响应。Web服务器软件通常运行在服务器操作系统上,可以通过Internet或...