02-Web服务器 和 应用服务器

02-Web服务器 和 应用服务器 网站服务器(WebsiteServer),简称Web服务器。也可以叫做HTTP服务器。网站服务器主要用于网站在互联网中的发布应用,是网络应用的基础硬件设施。Http服务器的定义:是指驻留于因特网上某种类型计算机的程序,可以处理浏览器等Web客户端的请求并返回相应响应。也可以放置网站文件,让全

大家好,欢迎来到IT知识分享网。

网站服务器(Website Server),简称Web服务器也可以叫做HTTP服务器

网站服务器主要用于网站在互联网中的发布应用,是网络应用的基础硬件设施。

Http服务器的定义:是指驻留于因特网上某种类型计算机的程序,可以处理浏览器等Web客户端的请求并返回相应响应。也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。

而网站服务器在要想在网络环境下实现客户端和服务端之间通信,则必须实现HTTP通信协议规范。因此Web服务器也叫HTTP服务器。(而HTTP服务器 一般指的就是网站服务器 。)

最主流的三个Web服务器是:Apache、Nginx、IIS、
  

WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。

  • 也可以放置网站文件,让全世界浏览;
  • 可以放置数据文件,让全世界下载。

 

Web服务器解析HTTP协议
(处理浏览器等Web客户端的请求并返回相应响应。
    当Web服务器接收到一个HTTP请求时,它将响应一个HTTP响应。例如发送回一个HTML页面。

 

    为了处理请求,Web服务器可以使用静态HTML页面或图像进行响应,发送重定向,或将动态响应生成委托给一些其他程序,如CGI脚本、jsp (JavaServer Pages)、servlet、asp (Active server Pages)、服务器端javascript或一些其他服务器端技术。无论其目的是什么,这类服务器端程序都会生成一个响应(通常是HTML),以便在Web浏览器中查看。

 

    企业WEB服务器是面向企业网络用户的信息交流平台,WEB在企业生产管理过程中的应用越来越多,是信息化应用的入口,一些应用系统都集成在WEB服务器上。

 

    要知道,Web服务器的委托模型非常简单:

 

    当一个请求进入Web服务器时,Web服务器只会单纯地将请求传递给最能处理它的程序(注:服务器端脚本))。Web服务器不提供任何功能,仅仅提供一个服务器端程序可以在其中执行和传递生成的响应的环境。服务器端程序通常具有事务处理、数据库连接和消息传递等功能。

 

    虽然Web 服务器不支持事务处理或数据库连接池,但它可以配置各种策略来实现容错性和可扩展性。如负载平衡、缓存。集群—这些特性常常被错误地分配为仅为应用服务器保留的特性。

 

    总之,Web服务器只是通过处理HTTP请求来响应HTML页面。

 

 

Tomcat不是web服务器,是web应用服务器,专门运行动态的web应用,!!!!!

 

 

Web服务器也通常叫做HTTP服务器:

  Web服务器是指驻留于因特网上某种类型计算机的程序。
  Web服务器可以解析HTTP协议 。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response)。

  当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)与客户机浏览器进行信息交流,这就是人们常把它们称为HTTP服务器的原因。

        例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应一个静态页面或图片,进行页面跳转。或者把动态响应的产生委托给一些其它的程序。例如CGI脚本,JSP脚本,servlets,ASP脚本,服务器端JavaScript,或者一些其它的服务器端技术。但无论它们的目的如何,这些服务器端的程序通常产生一个HTML的响应来让浏览器可以浏览。
        企业WEB服务器是面向企业网络用户的信息交流平台,WEB在企业生产管理过程中的应用越来越多,是信息化应用的入口,一些应用系统都集成在WEB服务器上。要知道,Web服务器的代理模型非常简单:当一个请求被送到Web服务器里来时,它只单纯的把请求传递给可以很好的处理请求 的程序(译者注:服务器端脚本)。
  Web服务器仅仅提供一个可以执行服务器端程序和返回(程序所产生的)响 应的环境,而不会超出职能范围。服务器端程序通常具有事务处理,数据库连接和消息等功能。
 
  虽然Web 服务器不支持事务处理或数据库连接池,但它可以配置各种策略来实现容错性和可扩展性,例如负载平衡,缓冲。集群特征经常被误认为仅仅是应用程序服务器专有的特征。

市面常用Web服务器:

  1. 在选择使用WEB服务器应考虑的本身特性因素有:性能、安全性、日志和统计、虚拟主机代理服务器、缓冲服务和集成应用程序等。
  2. Unix和Linux下,常用的Web服务器有Apache、Nginx、、IBM WebSphere、WebLogic 、Lighttpd等,应用最广泛的是Apache。
  3. Windows下,最常用的是微软公司的IIS(Internet Information Server)。

        ————————————————————————————————————————————————————————————

  • 【Apache】 仍是世界使用排名第一的Web服务器软件。它源于NCSAhttpd服务器,世界上很多著名的网站都是Apache的用户。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。源代码开放,有一支开放的开发队伍、支持跨平台的应用,可移植性等,Apache的模块支持非常丰富。但是,速度、性能上不及轻量级Web服务器,属于重量级产品,所消耗的内存比其他Web服务器要高。同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。也是一个基金会的名称、一种武装直升机等等。

  • 【Tomcat】 是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的Web应用软件容器。Tomcat Server是根据servlet和JSP规范执行的,因此,可以说Tomcat Server实行了Apache-Jakarta规范,而且,比绝大多数商业应用软件服务器要好。但是,Tomcat对静态文件、高并发的处理比较弱。
  • 【Nginx】是一款轻量级的 Web服务器 /反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、腾讯等。

  • 【IIS】
    Microsoft的Web服务器是IIS(Internet Information Server),是允许在公共Intranet或Internet上发布信息的Web服务器,IIS提供了一个图形界面的管理工具,称为Internet服务管理器,用于监视配置和控制Internet服务。IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使在网络上发布信息成了一件很容易的事情。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口,此外,还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。
     
  • Kangleweb
            简称:kangle。是一款跨平台、功能强大、安全稳定、易操作的高性能web服务器和反向代理服务器软件。

            除此,kangle也是一款专为做虚拟主机研发的web服务器。实现虚拟主机独立进程、独立身份运行。用户之间安全隔离,一个用户出问题不影响其他用户。安全支持php、asp、net、java、ruby等多种动态开发语言。
      

  • Lighttpd
    由一个德国人写的开源软件,目标是提供一个专门针对高性能网站、安全、快速、兼容性好,并且灵活的WebServer环境。
       具有内存开销低、CPU占用率低、效能好、一级模块丰富等特定,支持FastCGI、CGI、Auth、输出压缩(output compress)、URL重写及Alias等重要功能。
        Lighttpd和Nginx一样,是一款轻量级Web服务器,是Nginx竞争对手之一。

  • IBM_WebSphere
    是一种功能完善、开放的Web用用程序服务器,是IBM电子商务计划的核心部分,它是基于Java的应用环境、建立、部署和管理Internet和Intranet Web应用程序。


2)应用程序服务器

(Application Server)———— 能使用户在其他计算机中来访问服务主机中的应用程序。      

随着Internet的发展壮大,“主机/终端” 或 “客户机/服务器”的传统的应用系统模式,已经不能适应新的环境,于是就产生了新的分布式应用系统。相应地,新的开发模式也应运而生,即所谓的“浏览器/服务器”结构、“瘦客户机”模式。应用服务器便是一种实现这种模式核心技术。

  • 应用服务器是指通过各种协议把商业逻辑曝露给客户端的程序。
  •  它提供了访问商业逻辑的途径以供客户端应用程序使用。应用服务器使用此商业逻辑就像调用对象的一个方法一样。

常见应用服务器

        Apache的Tomcat
  IBM的WebSphere
Application Server、Caucho Technology的Resin、Macromedia的JRun、NEC WebOTX Application Server、JBoss Application Server、Oracle(并购了BEA)的WebLogic等。其中有些如NEC WebOTX Application Server、WebLogic、WebSphere不仅仅是Servlet容器,它们也提供对EJB(Enterprise JavaBeans)、JMS(Java Message Service)以及其他Java EE技术的支持。

每种类型的应用服务器都有自己的优点、局限性和适用性。

    WebLogic ———Bea公司
        JBoss         ——— Sun的
             GlassFish   ———

 

1.Tomcat服务器

        是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的Web应用软件容器。Tomcat Server是根据servlet和JSP规范进行执行的,因此我们就可以说Tomcat Server也实行了Apache-Jakarta规范且比绝大多数商业应用软件服务器要好。

2.IBM WebSphere 
         是 一 种功能完善、开放的Web应用程序服务器,是IBM电子商务计划的核心部分,它是基于 Java 的应用环境,用于建立、部署和管理 Internet 和 Intranet Web 应用程序。 这一整套产品进行了扩展,以适应 Web 应用程序服务器的需要,范围从简单到高级直到企业级。

WebSphere 针对以 Web 为中心的开发人员,他们都是在基本 HTTP服务器和 CGI 编程技术上成长起来的。IBM 将提供 WebSphere 产品系列,通过提供综合资源、可重复使用的组件、功能强大并易于使用的工具、以及支持 HTTP 和 IIOP 通信的可伸缩运行时环境,来帮助这些用户从简单的 Web 应用程序转移到电子商务世界。

3.BEA WebLogic 
        是一种多功能、基于标准的web应用服务器,为企业构建自己的应用提供了坚实的基础。各种应用开发、部署所有关键性的任务,无论是集成各种系统和数据库,还是提交服务、跨 Internet 协作,起始点都是 BEA WebLogic Server。由于 它具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于 Internet 的企业都选择它来开发、部署最佳的应用。

        BEA WebLogic Server 在使应用服务器成为企业应用架构的基础方面继续处于领先地位。BEA WebLogic Server 为构建集成化的企业级应用提供了稳固的基础,它们以 Internet 的容量和速度,在连网的企业之间共享信息、提交服务,实现协作自动化。BEA WebLogic Server 的遵从 J2EE 、面向服务的架构,以及丰富的工具集支持,便于实现业务逻辑、数据和表达的分离,提供开发和部署各种业务驱动应用所必需的底层核心功能。

 

        
Web应用程序驻留在应用服务器(Application Server)上。应用服务器为Web应用程序提供一种简单的和可管理的对系统资源的访问机制。它也提供低级的服务,如HTTP协议的实现和数据库连接管理。Servlet容器仅仅是应用服务器的一部分。除了Servlet容器外,应用服务器还可能提供其他的Java EE组件,如EJB容器,JNDI服务器以及JMS服务器等。

 

 根据定义,作为应用程序服务器,它通过各种协议,可以包括HTTP,把商业逻辑暴露给(expose)客户端应用程序。

 

        Web服务器主要是处理向 浏览器发送HTML以供浏览,而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。应用程序使用此商业逻辑就像你调用对象的一个方法(或过程 语言中的一个函数)一样。

 

        应用程序服务器的客户端(包含有图形用户界面(GUI)的)可能会运行在一台PC、一个Web服务器或者甚至 是其它的应用程序服务器上。在应用程序服务器与其客户端之间来回穿梭(traveling)的信息不仅仅局限于简单的显示标记。相反,这种信息就是程序逻 辑。 正是由于这种逻辑取得了数据和方法调用的形式而不是静态HTML,所以客户端才可以随心所欲的使用这种被暴露的商业逻辑。

 

        在大多数情形下,应用程序服务器是通过组件的应用程序接口(API)把商业逻辑暴露(给客户端应用程序)的,例 如基于J2EE(Java 2 Platform, Enterprise Edition)应用程序服务器的EJB(Enterprise JavaBean)组件模型。此外,应用程序服务器可以管理自己的资源,例如看大门的工作包括安全,事务处理,资源池, 和消息。就象Web服务器一样,应用程序服务器配置了多种可扩展和容错技术。

 


 应用服务器 和 WEB服务器 的区别

 

  •  Web服务器专门处理HTTP请求。——让客户可以通过浏览器进行访问静态资源。

  • 应用程序服务器提供的是客户端应用程序可以调用的方法。——处理业务逻辑
       
,但是应用程序服务器是通过很多协议来为应用程序提供商业逻辑。        

 

web服务器通常比应用服务器简单。

 

02-Web服务器 和 应用服务器

 

 

 

 

3.4、Web服务器

简介

 
 
 
 
 
 
 

The Web server

A Web server handles the HTTP protocol. When the Web server receives an HTTP request, it responds with an HTTP response, such as sending back an HTML page. To process a request, a Web server may respond with a static HTML page or image, send a redirect, or delegate the dynamic response generation to some other program such as CGI scripts, JSPs (JavaServer Pages), servlets, ASPs (Active Server Pages), server-side JavaScripts, or some other server-side technology. Whatever their purpose, such server-side programs generate a response, most often in HTML, for viewing in a Web browser.

Understand that a Web server's delegation model is fairly simple. When a request comes into the Web server, the Web server simply passes the request to the program best able to handle it. The Web server doesn't provide any functionality beyond simply providing an environment in which the server-side program can execute and pass back the generated responses. The server-side program usually provides for itself such functions as transaction processing, database connectivity, and messaging.

While a Web server may not itself support transactions or database connection pooling, it may employ various strategies for fault tolerance and scalability such as load balancing, caching, and clustering—features oftentimes erroneously assigned as features reserved only for application servers.

To summarize, a Web server simply processes HTTP requests by responding with HTML pages.

 
 


Web服务器是可以为发出请求的浏览器提供文档的程序。
     
1、服务器是一种被动程序:只有当Internet上运行其他计算机中的浏览器发出的请求时,服务器才会响应。
2 、最常用的Web服务器是
Apache  和   Microsoft的Internet信息服务器(Internet Information Services,
IIS)。
3、Internet上的服务器也称为Web服务器,是一台在Internet上具有独立IP地址的计算机,可以向Internet上的客户机提供WWW、Email和FTP等各种Internet服务。
4、Web服务器是指驻留于因特网上某种类型计算机的程序。
      当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)与客户机浏览器进行信息交流,这就是人们常把它们称为HTTP服务器的原因。
Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。


 Web服务器
工作原理

 Web服务器的工作原理并不复杂,一般可分成如下4个步骤:连接过程、请求过程、应答过程以及关闭连接。
(1)连接过程
        就是Web服务器和其浏览器之间所建立起来的一种连接。查看连接过程是否实现,用户可以找到和打开
socket这个虚拟文件,这个文件的建立意味着连接过程这一步骤已经成功建立。
(2)请求过程
        就是Web的浏览器运用socket这个文件向其服务器而提出各种请求。
(3)应答过程
        就是运用HTTP协议把在请求过程中所提出来的请求传输到Web的服务器,进而实施任务处理,然后运用HTTP协议把任务处理的结果传输到Web的浏览器,同时在Web的浏览器上面展示上述所请求之界面。
(4)关闭连接
        就是当上一个步骤–应答过程完成以后,Web服务器和其浏览器之间断开连接之过程。Web服务器上述4个步骤环环相扣、紧密相联,逻辑性比较强,可以支持多个进程、多个线程以及多个进程与多个线程相混合的技术。

 

涉及到的协议

  1. 应用层使用HTTP协议。
  2. HTML(标准通用标记语言下的一个应用)文档格式。
  3. 浏览器统一资源定位器(URL)。
  4. 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。
  5. 为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。


 

 

通过分析案例,来体会了解应用程序服务器的功能。
        
例如,设想一个在线商店(网站)提供实时定价和有效性信息。这个站点很可能会提供一个表单让你来选择产品。当你提交查询后,网站会进行查找并把结果内嵌在HTML页面中返回。网站可以有很多种方式来实现这种功能。
        我要介绍一个不使用应用程序服务器的情景和一个使用应用程序服务器的情景。观察一下这两中情景的不同会有助于你了解应用程序服务器的功能。

情景1:不带应用程序服务器的Web服务器
        在此种情景下,一个Web服务器独立提供在线商店的功能。
        Web服务器获得你的请求,然后发送给服务器端可以处理请求的程序。此程序从数据库或文本文件(译者注:flat file是指没有特殊格式的非二进制的文件,如properties和XML文件等)中查找定价信息。一旦找到,服务器端程序把结果信息表示成HTML形式,最后Web服务器把会它发送到你的
Web浏览器。
        简而言之,
Web服务器只是简单的通过响应HTML页面来处理HTTP请求。
 
情景2:带应用程序服务器的Web服务器
        情景2和情景1相同的是Web服务器还是把响应的产生委托给脚本(服务器端程序)。
        然而,你可以把查找定价的
商业逻辑放到应用程序服务器上。由于这种变化,此脚本只是简单的调用应用程序服务器的查找服务,而不是已经知道如何查找数据然后表示为一个响应。这时当该脚本程序产生HTML响应时就可以使用该服务的返回结果了。
        在此情景中,应用程序服务器提供了用于查询产品的定价信息的
商业逻辑。(服务器的)这种功能没有指出有关显示和客户端如何使用此信息的细节,相反客户端和应用程序服务器只是来回传送数据。当有客户端调用应用程序服务器的查找服务时,此服务只是简单的查找并返回结果给客户端。
        通过从响应产生HTML的代码中分离出来,在应用程序之中该定价(查找)逻辑的可重用性更强了。其他的客户端,例如收款机,也可以调用同样的服务(service)来作为一个店员给客户结帐。相反,在情景1中的定价查找服务是不可重用的因为信息内嵌在HTML页中了。
        总而言之,在情景2的模型中,在
Web服务器通过回应HTML页面来处理HTTP请求,而应用程序服务器则是通过处理定价和有效性请求来提供应用程序逻辑的。
 
警告
        XML Web Services已经使应用程序服务器和Web服务器的界线混淆了。通过传送一个XML有效载荷(payload)给服务器,Web服务器现在可以处理数据和响应的能力与以前的应用程序服务器同样多了。
        另外,
大多数应用程序服务器也包含了Web服务器,这就意味着可以把Web服务器当作是应用程序服务器的一个子集
        虽然应用程序服务器包含了Web服务器的功能,但是开发者很少把应用程序服务器部署成这种功能。(译者注:这种功能是指既有应用程序服务器的功能又有Web服务器的功能)。
        相反,如果需要,他们通常会把Web服务器独立配置,和应用程序服务器一前一后。这种功能的分离有助于提高性能(简单的Web请求就不会影响应用程序服务器了),分开配置(专门的Web服务器,集群(clustering)等等),而且给最佳产品的选取留有余地。


Web Server,Web Container,Application Container的区别

 

1、Web Server

        Web 服务器 是指能够接收,解析,处理HTTP请求,并将处理后的响应结果返回给合适的客户端(Web浏览器)的服务器。 

        例如:Apache Web服务器。

        例如:IHS(IBM HTTP Server),是建立在Apahce之上的由IBM添加更多功能后的服务器,都用于处理HTTP请求。

 
 
 
 
 

Web Server is a server capable of receiving HTTP requests, interpreting them, processing the corresponding HTTP Responses and sending them to the appropriate clients (Web Browsers). Example: Apache Web Server.

 
 

 

2、Web Container

        Web容器是一个符合J2EE的实现,它为servlet和jsp的运行提供了一个环境。换句话说,我们可以说Web容器是Servlet引擎和JSP引擎的组合。

        当一个HTTP请求访问到一个Web组件(通常是一个Servlet或JSP),那么该请求会被转发到Web Container(容器),经处理完毕之后,将请求的结果被发送回Web Server(服务器),再由Web服务器使用该结果为特定的HTTP请求准备HTTP响应。

        例如:Tomcat是一个典型的Web容器。典型的设置是使用Apache HTTP服务器作为Web服务器,Tomcat作为Web容器。

 
 
 
 
 
 
 

A Web Container is a J2EE compliant implementation which provides an environment for the Servlets and JSPs to run. Putting it differently we can say that a Web Container is combination of a Servlet Engine and a JSP Engine. If an HTTP Request refers to a Web Component (typically a Servlet or a JSP) then the request is forwarded to the Web Container and the result of the request is sent back to Web Server, which uses that result to prepare the HTTP Response for the particular HTTP Request. Example: Tomcat is a typical Web Container. A typical setup would be to have Apache HTTP Server as the Web Server and Tomcat as the Web Container.

 
 

 

3、Application Server 

        应用服务器是一个完整的server,它提供整个业务模块 (EJBs,ADFs,etc)运行的环境。 它除了提供Web容器和Web服务器的功能外,还提供了整个业务组件(EJB、ADF、 BC等)运行的环境。

        例如:Bea WebLogic, IBM  WebSphere, Oracle应用服务器等都属于此类。

 
 
 
 
 
 
 

An Application Server is a complete server, which provides an environment for running the business components (EJBs, ADF BCs, etc.) in addition to providing the capabilities of a Web Container as well as of a Web Server. 

    Example: Bea WebLogic, IBM WebSphere, Oracle Application Server, etc.

 
 

 


五、Apache和Tomcat

作为一个Java开发,Tomcat在工作中是避免不了要使用的,而使用Tomcat的时候总会出现Apache,到底Apache和Tomcat是什么关系?

Apache概述
        全称:Apache HTTP 
Server。是Apache软件基金会的一个开放源码的Web服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。 
 
      Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

Tomcat概述
  • 是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。
  • 由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。
  • 因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。
  • Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML页面的访问请求。
  • 实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
  • 当配置正确时,Apache 为HTML页面服务(静态资源)。
    而Tomcat 实际上运行JSP 页面和Servlet(动态资源)。
  • 另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。
    不过,Tomcat处理静态HTML的能力不如Apache服务器。Tomcat最新版本为10.0.5。
  • Apache是Web服务器,和它类似的还有常说的Nginx。
    Tomcat是应用服务器,更明确地说Tomcat只是一个servlet容器,可以认为它是Apache的扩展,但是可以独立于Apache运行。

两者的相同点
  • 两者都是Apache组织开发的
  • 两者都有HTTP服务的功能
  • 两者都是开源免费的
  • 两者都可以独立运行
 
两者的区别
  • Apache只是一个普通服务器,只能用来解析静态页面(html),不支持解析动态页面(jsp),它可以通过插件支持php。
    如果想解析动态页面(jsp)就要用到Tomcat,Tomcat同时也支持HTML、JSP、ASP、PHP、CGI等。
  • Apache是用C语言实现的,支持各种特性和模块从而来扩展核心功能。
    而Tomcat是用Java实现的,所以它更好的支持jsp。
  • 一般使用Apache+Tomcat的话,Apache直接处理静态请求而不经过Tomcat,对于动态请求,Apache只是作为一个转发,对jsp的处理是由Tomcat来处理的,Apache回传解析好的静态代码,这样整合就可以减少Tomcat的服务开销。 
  • Apache可以单向与Tomcat连通,就是说通过Apache可以访问Tomcat资源,反之不然。
  • Apache是很早开始的页面解析服务,Tomcat是后研发出来的,从本质上来说Tomcat的功能完全可以替代Apache。但Apache毕竟是Tomcat的前辈级人物,并且市场上也有不少人还在用Apache,Apache虽然不能解析Java的东西,但解析html速度快,所以Apache还会继续存在,不会被取代。
  • Apache可以运行一年不重启,稳定性非常好,而Tomcat则不见得。
  • 首选web服务器是Apache,但Apache解析不了的jsp、servlet才用Tomcat。
  • 只使用Apache服务器不需要安装jdk,使用Tomcat服务器必须安装jdk并配置好环境变量。
 
Apache和Tomcat整合的好处
    如果客户端请求的是静态页面,则只需要Apache服务器响应请求。
    如果客户端请求动态页面,则是Tomcat服务器响应请求。
    因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销。
 

Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL。与客户端的网络浏览器配合。因为Web服务器主要支持的协议就是HTTP,所以通常情况下HTTP服务器和WEB服务器是相等的(有没有支持除HTTP之外的协议的web服务器,作者没有考证过),说的是一回事。 

 

应用程序服务器(简称应用服务器),我们先看一下微软对它的定义:”我们把应用程序服务器定义为“作为服务器执行共享业务应用程序的底层的系统软件”。 就像文件服务器为很多用户提供文件一样,应用程序服务器让多个用户可以同时使用应用程序(通常是客户创建的应用程序)”

 

 

 

以Java EE为例,Web服务器主要是处理静态页面处理和作为 Servlet容器,解释和执行servlet/JSP。而应用服务器是运行业务逻辑的,主要是EJB、 JNDI和JMX API等J2EE API方面的,还包含事务处理、数据库连接等功能,所以在企业级应用中,应用服务器提供的功能比WEB服务器强大的多。

 

以这样的定义,IIS、Apache、Tomcat都可以属于Web服务器,Weblogic、WebSphere都属于应用服务器。 

 

Apache:在Web服务器中,Apache是纯粹的Web服务器,经常与Tomcat配对使用。它对HTML页面具有强大的解释能力,但是不能解释嵌入页面内的服务器端脚本代码(JSP/Servlet)。

 

Tomcat:早期的Tomcat是一个嵌入Apache内的JSP/Servlet解释引擎。

Apache+Tomcat就相当于IIS+ASP。后来的Tomcat已不再嵌入Apache内,Tomcat进程独立于Apache进程运行。 而且,Tomcat已经是一个独立的Servlet和JSP容器,业务逻辑层代码和界面交互层代码可以分离了。因此,有人把Tomcat叫做轻量级应用服务器。 

 

IIS:微软早期的IIS,就是一个纯粹的Web服务器。后来,它嵌入了ASP引擎,可以解释VBScript和JScript服务器端代码了,这时,它就可以兼作应用服务器。当然,它与J2EE应用服务器根本无法相比,但是,从功能上说,从原理上说,它勉强可以称之为应用服务器。确切地说,它是兼有一点应用服务器功能的Web服务器。 

 

综上:Apache是纯粹的web服务器,而Tomcat和IIS因为具有了解释执行服务器端代码的能力,可以称作为轻量级应用服务器或带有服务器功能的Web服务器。Weblogic、WebSphere因为能提供强大的J2EE功能,毫无疑问是绝对的应用服务器。对于处于中间位置的Tomcat,它可以配合纯Web服务器Apache一起使用,也可以作为应用服务器的辅助与应用服务器一起部署

 

一、Tomcat与应用服务器

到目前为止,Tomcat一直被认为是Servlet/JSP API的执行器,也就所谓的Servlet容器。然而,Tomcat并不仅仅如此,它还提供了JNDI和JMX API的实现机制。尽管如此,Tomcat仍然还不能算是应用服务器,因为它不提供大多数J2EE API的支持。

很有意思的是,目前许多的应用服务器通常把Tomcat作为它们Servlet和JSP API的容器。由于Tomcat允许开发者只需通过加入一行致谢,就可以把Tomcat嵌入到它们的应用中。遗憾的是,许多商业应用服务器并没有遵守此规则。

对于开发者来说,如果是为了寻找利用Servlet、JSP、JNDI和JMX技术来生成Java Web应用的话,选择Tomcat是一个优秀的解决方案;但是为了寻找支持其他的J2EE API,那么寻找一个应用服务器或者把Tomcat作为应用服务器的辅助,将是一个不错的解决方案;第三种方式是找到独立的J2EE API实现,然后把它们跟Tomcat结合起来使用。虽然整合会带来相关的问题,但是这种方式是最为有效的。。

 

二、Tomcat与Web服务器

Tomcat是提供一个支持Servlet和JSP运行的容器。Servlet和JSP能根据实时需要,产生动态网页内容。而对于Web服务器来说, Apache仅仅支持静态网页,对于支持动态网页就会显得无能为力;Tomcat则既能为动态网页服务,同时也能为静态网页提供支持。尽管它没有通常的Web服务器快、功能也不如Web服务器丰富,但是Tomcat逐渐为支持静态内容不断扩充。大多数的Web服务器都是用底层语言编写如C,利用了相应平台的特征,因此用纯Java编写的Tomcat执行速度不可能与它们相提并论。

一般来说,大的站点都是将Tomcat与Apache的结合,Apache负责接受所有来自客户端的HTTP请求,然后将Servlets和JSP的请求转发给Tomcat来处理。Tomcat完成处理后,将响应传回给Apache,最后Apache将响应返回给客户端。

而且为了提高性能,可以一台apache连接多台tomcat实现负载平衡。

 

注意事项:Tomcat不是web服务器,是web应用服务器。是专门运行动态web应用的。比如java、jsp、servlet

web服务器不能解析jsp等等页面,只能处理js、css、html等静态资源

并发:web服务器的并发能力远高于应用服务器。

02-Web服务器 和 应用服务器

 

 

 

 

 

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用 服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应 HTML( 标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和 IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态 HTML的能力不如Apache服务器。Tomcat最新版本为10.0.14
 
 
 
 
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,

在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可

利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。

实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,

它实际上作为一个与Apache 独立的进程单独运行的。

诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。

另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,

另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。

不过,Tomcat处理静态HTML的能力不如Apache服务器。

Tomcat是一个世界上广泛使用的支持jsp和servlets的Web服务器。它在java上运行时能够很好地运行并支持Web应用部署。会因为设置不当,造成灾难性的后果。在Tomcat默认安装,Tomcat作为一个系统服务运行,如果没有将其作为系统服务运行,几乎所有Web服务器管理员都是缺省地将其以Administrator权限运行。这两种方式都允许Java运行时访问Windows系统下任意文件夹中的任何文件。缺省情况下,Java运行时授予安全权限。当 Tomcat以系统管理员身份或作为系统服务运行时,Java运行取得了系统用户或系统管理员所具有的全部权限。这样一来,Java运行时就取得了所有文件夹中所有文件的全部权限。并且Servlets(JSP在运行过程中要转换成Servlets)取得了同样的权限。所以Java代码可以调用Java SDK中的文件API、列出文件夹中的全部文件、删除任何文件,最大的危险在于以系统权限运行一个程序。

 

 


 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/32711.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信