精华内容
下载资源
问答
  • Apache和Tomcat的区别Web服务器,容器和应用服务器区别问题
    清理书签的时候发现了遗留的Apache和Tomcat的区别的问题。打算把刚开始学习Servlet的时候的问题一同解决了,刚开始学习J2EE的时候,先学习的是Servlet,运行需要Tomcat,当时我很郁闷这是什么东西,什么Web容器,真不懂,后面请教了朋友,朋友说暂时把它当成一个服务器理解就好了。


    接下来问题有:
    1、什么是服务器?
    2、Web服务器,Web容器和应用服务器的区别?
    3、Apache和Tomcat的区别?
    4、都是服务器,那么我们经常还听到Nginx这样的服务器,和Apache的区别?

    1、什么是服务器

    查看Apache的定义时,会发现,Apache为Web server,也就是Web服务器。

    Web服务器是指能够为发出请求的浏览器提供文档的程序。服务器是一种被动程序,只有浏览器发出请求的时候才会响应。应用层使用的是HTTP协议。

    2、Web服务器,Web容器和应用服务器的区别

    Web Server,Web container和Application Server区别。

    Web Server,Web服务器,同上面所说,
    Web服务器是指能够为发出请求的浏览器提供文档的程序。服务器是一种被动程序,只有浏览器发出请求的时候才会响应。应用层使用的是HTTP协议。目前最主流的三个Web服务器是Apache Nginx IIS。

    Web容器是一种服务器程序,在服务器端口就有一个提供相应服务的程序。所以现在知道为什么Tomcat有默认的端口——8080。一个服务器可以有多个容器。

    如Tomcat,收到浏览器的请求之后还会解析Servlet,然后再把Servlet处理后的结果返回给浏览器。其实Tomcat既是Web服务器也是Web容器。为什么这样说,第三点会讲到。

    而应用服务器,这里有个区分它与Web服务器的答案:
    What is the difference between application server and web server?
    Web服务器设计服务于HTTP内容,应用服务器不只限于HTTP。Web服务器服务于静态内容,有插件支持动态语言,
    应用服务器也具有Web服务器的这些东西,除此它还支持程序级的服务,如连接池,事务支持,信息服务等。

    至于Tomcat是不是应用服务器,那就不好说了。


    3、Apache和Tomcat的区别

    Apache指的是Apache HTTP Server。
    stackoverflow里面的这个问题虽然被关闭了,但是有一个评论写的博客挺好的。
    What is Tomcat? Is it a Web Server? What can Tomcat do? How is it different than Apache Web Server?
    里面就讲到:

    Tomcat是一个Servlet/Jsp容器,它同时也作为一个web服务器使用。

    Tomcat = ( Web Server + Servlet container + JSP environment ),因为我们知道JSP也是转译为Servlet的,Tomcat接收请求之后,如果是JSP页面的话,Tomcat里面的JSP引擎可以将JSP转换为Servlet类。

    从这里也可以看到,
    其实Tomcat既是Web服务器也是Web容器。

    如果是Servlet类的话,直接就是Servlet引擎加载Servlet类并且执行,然后以HTML的格式输出,再返回给浏览器。

    Apache是设计服务于静态web页面的web服务器。如果是Apache来接收jsp请求,它根本就不知道这是什么东西,所以返回的并不是我们想要的结果,但是静态页面的话,如http://www.apache.com/index.html这样的请求的时候,Apache就直接将这个页面返回给请求的浏览器了。


    4、都是服务器,那么我们经常还听到Nginx这样的服务器,和Apache的区别

    Nginx是engine x的缩写,与Apache不同的是,Nginx是一款高性能的HTTP和反向代理服务器。
    其实这块我是接触很少的,
    但是之前见过他人的博客挂掉的时候出了这个Nginx,就一直很好奇这是什么东西,
    还有一个师兄用Raspberry Pi加Nginx加PHP发了个Helloworld的时候,也让我感觉很是神奇。


    此篇比较理论,就当练英文和了解基本的理论知识用了。



    展开全文
  • apache:是web服务器,可以作为独立的web服务器来运行,但是不能解释java程序;它是普通服务器,只支持html(普通网页),可以通过插件支持php; 功能类似与IIS,是html容器。只支持静态网页。 Apache是世界使用排名...

    转自很多地方(主要):https://www.cnblogs.com/soqu36/articles/6341227.html
    apache:是web服务器,可以作为独立的web服务器来运行,但是不能解释java程序;它是普通服务器,只支持html(普通网页),可以通过插件支持php;

    功能类似与IIS,是html容器。只支持静态网页。

    Apache是世界使用排名第一的Web服务器。它可以运行在几乎所有广泛使用的计算机平台上。

    Apache 源于 NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。Apache对Linux的支持相当完美。

    Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon.com、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、 Windows、Linux系统平台上)以及它的可移植性等方面。

    tomcat:是应用(java)服务器,一个servlet容器,是apache的扩展;可用于发布jsp及java,类似于webhere,weblogic。

    它支持动态网页,如asp,php,cgi,jsp。

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

    Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技术的标准实现,是基于Apache许可证下开发的自由软件。Tomcat是完全重写的Servlet API 2.2和JSP 1.1兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代码,特别是Apache服务适配器。随着Catalina Servlet引擎的出现,Tomcat第四版号的性能得到提升,使得它成为一个值得考虑的Servlet/JSP容器,因此目前许多WEB服务器都是采用Tomcat。

    复制上百度上说两者在对请求上的处理。(个人觉得简单易懂)
    首先,用户通过浏览器访问一个网址,我们叫他URL,格式可能是:

    http://www.*********com/alspweb/form.html

    也可能是

    http://www.************.com/alspweb/form.jsp

    这样子.

    2
    这个请求会发送到WEB服务器上,而web服务器上搭建了web服务器软件,就是apache了。所以,apache是一个web服务器软件。

    3
    apache发现请求的是一个静态的web页面,这个简单啊,apache自己就可以处理。所以,apache获取这个页面。这个页面在服务器上存储的样子类似于下图所示
    在这里插入图片描述
    apache和tomcat是如何配合工作的(简单易懂)
    4
    然后,apache将这个页面放在HTTP响应的消息体中(可以理解是,apache将发送一个HTTP响应给浏览器,而这个页面就粘贴在这个响应中一起带过去了。你好像你邮寄了一封信,里面顺便插入了一张HTML页面一样)

    5
    浏览器收到了HTML页面,OK,此时他还是一段代码,然后解析成具体的页面
    在这里插入图片描述
    apache和tomcat是如何配合工作的(简单易懂)
    6
    那么问题来了,apache怎么知道你请求的是个静态网页呢?看名字喽,你请求的是form.html,后缀名是.html,肯定是个静态的啦,apache自己就处理了。

    但是apache处理不了动态的网页。比如,我访问

    。。。。。。。。。。。。/form.jsp

    后缀名是.jsp,肯定是个动态的东西,apache说,这个我处理不了,需要找其他的软件帮我处理。

    找谁呢?就是tomcat,所以tomcat是一个容器,也可以叫应用服务器。tomcat本身也可以处理静态网页,所以tomcat是可以脱离apache自己单独存在的,但是tomcat对静态网页处理的不好,所以往往和apache共同使用。

    此时,apache直接将请求发送给tomcat,也就是请求

    http:/············································/alspweb/form.jsp的页面。

    tomcat说,这个我能干啊,于是找到了form.jsp的页面
    在这里插入图片描述
    apache和tomcat是如何配合工作的(简单易懂)
    其中,这一段代码就是jsp写的动态的东西了。小编这里写的简单,一般来说,会有一个请求发送到jsp页面,jsp进行处理后再把结果写入到网页。正因为输入的不同会得到不同的结果,也会生成不同的页面,所以是个动态的页面。动态的页面就是说你在请求前这个页面还不存在,请求后通过请求的参数才能得到最后的页面。

    apache和tomcat是如何配合工作的(简单易懂)
    tomcat对jsp进行解析,然后把jsp的文件解析成一个静态的html页面,再把这个页面交给了apahce

    apache说,嘿这个是html,我可以处理啊,然后把这个html直接给到了浏览器了。
    在这里插入图片描述
    apache和tomcat是如何配合工作的(简单易懂)
    我们通过浏览器看下源码(右键->查看网页的源代码),可以看到,之前的<% %>符号已经不见了

    apache和tomcat是如何配合工作的(简单易懂)
    所以,我们把apache叫为web服务器软件,他只能处理静态的页面,动态的处理不了。而tomcat可以处理动态的,静态的也能处理,但处理的没有apache厉害。

    你们可以自己试试,只搭建一个apche,然后在里面放一个.jsp页面,直接访问看看什么结果。

    展开全文
  • Apache与Tomcat都是Apache开源组织开发用于处理HTTP服务项目,两者都是免费,都可以做为独立的Web服务器运行。Apache是Web服务器Tomcat是Java应用服务器。 2.具体区分 Apache服务器 只处理 静态HTML;tomcat...

    1.概述

    Apache与Tomcat都是Apache开源组织开发的用于处理HTTP服务的项目,两者都是免费的,都可以做为独立的Web服务器运行。Apache是Web服务器而Tomcat是Java应用服务器。

    2.具体区分

    Apache服务器 只处理 静态HTML;tomcat服务器 静态HTML 动态 JSP Servlet 都能处理。

    一般是把 Apache服务器与tomcat服务器 搭配在一起用。 Apache服务器负责处理所有 静态的页面/图片等信息。Tomcat只处理动态的部分。

    (1)Apache:是C语言实现的,专门用来提供HTTP服务。

    特性:简单、速度快、性能稳定、可配置(代理)

    1、主要用于解析静态文本,并发性能高,侧重于HTTP服务;

    2、支持静态页(HTML),不支持动态请求如:CGI、Servlet/JSP、PHP、ASP等;

    3、具有很强的可扩展性,可以通过插件支持PHP,还可以单向Apache连接Tomcat实现连通;

    4、Apache是世界使用排名第一的Web服务器。

    (2)Tomcat:是Java开发的一个符合JavaEE的Servlet规范的JSP服务器(Servlet容器),是 Apache 的扩展。

    特性:免费的Java应用服务器

    1、主要用于解析JSP/Servlet,侧重于Servlet引擎;

    2、支持静态页,但效率没有Apache高;支持Servlet、JSP请求;

    3、Tomcat本身也内置了一个HTTP服务器用于支持静态内容,可以通过Tomcat的配置管理工具实现与Apache整合。

    3.Apache +和Tomcat组合

    两者整合后优点:如果请求是静态网页则由Apache处理,并将结果返回;如果是动态请求,Apache会将解析工作转发给Tomcat处理,Tomcat处理后将结果通过Apache返回。这样可以达到分工合作,实现负载远衡,提高系统的性能。

    4.总结

    apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet容器,可以认为是apache的扩展,但是可以独立于apache运行。

    换句话说,apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),而这个桶也可以不放在卡车上。

    展开全文
  • nginx常用做静态内容服务代理服务器(不是你FQ那个代理),直面外来请求转发给后面应用服务(tomcat,django什么),tomcat更多用来做做一个应用容器,让java web app跑在里面东西,对应同级别有jboss,...

    web上的server都叫web server,但是大家分工也有不同的。

    nginx常用做静态内容服务和代理服务器(不是你FQ那个代理),直面外来请求转发给后面的应用服务(tomcat,django什么的),tomcat更多用来做做一个应用容器,让java web app跑在里面的东西,对应同级别的有jboss,jetty等东西。

    但是事无绝对,nginx也可以通过模块开发来提供应用功能,tomcat也可以直接提供http服务,通常用在内网和不需要流控等小型服务的场景。

    apache用的越来越少了,大体上和nginx功能重合的更多。

    严格的来说,Apache/Nginx 应该叫做「HTTP Server」;而 Tomcat 则是一个「Application Server」,或者更准确的来说,是一个「Servlet/JSP」应用的容器(Ruby/Python 等其他语言开发的应用也无法直接运行在 Tomcat 上)。

    一个 HTTP Server 关心的是 HTTP 协议层面的传输和访问控制,所以在 Apache/Nginx 上你可以看到代理、负载均衡等功能。客户端通过 HTTP Server 访问服务器上存储的资源(HTML 文件、图片文件等等)。通过 CGI 技术,也可以将处理过的内容通过 HTTP Server 分发,但是一个 HTTP Server 始终只是把服务器上的文件如实的通过 HTTP 协议传输给客户端。

    而应用服务器,则是一个应用执行的容器。它首先需要支持开发语言的 Runtime(对于 Tomcat 来说,就是 Java),保证应用能够在应用服务器上正常运行。其次,需要支持应用相关的规范,例如类库、安全方面的特性。 对于 Tomcat 来说,就是需要提供 JSP/Sevlet 运行需要的标准类库、Interface 等。为了方便,应用服务器往往也会集成 HTTP Server 的功能,但是不如专业的 HTTP Server 那么强大,所以应用服务器往往是运行在 HTTP Server 的背后,执行应用,将动态的内容转化为静态的内容之后,通过 HTTP Server 分发到客户端。
    总结一下:
    Nginx是一个HTTP Server ,侧重关心HTTP协议层面的传输和访问控制
    Tomcat是一个应用服务器,比如:将应用部署到tomcat服务器

    两者功能有重合,但是侧重点不同,目前都是将两者相结合使用

    展开全文
  • Apache与Tomcat都是Apache开源组织开发用于处理HTTP服务项目,两者都是免费,都可以做为独立的Web服务器运行。Apache是Web服务器Tomcat是Java应用服务器。 Apache服务器 只处理 静态HTML;tomcat服务器 ...
  • 它可以运行在几乎所有广泛使用计算机平台上,由于其跨平台安全性被广泛使用,是最流行的Web服务器端软件之一。在Apache基金会里面Apache Server永远会被赋予最大支持,毕竟大儿子最亲嘛,而Apache开源服务器...
  • Apache 服务器和Tomcat 服务器的区别

    千次阅读 2018-06-27 23:20:31
    最近工作总是接触到Apache Tomcat 服务器,它们到底有什么区别,还是有点模糊,下面梳理一下。...请参考:web服务器与应用服务器的区别  Tomcat是一个Servlet(JSP)容器,是Apache的扩展,可以独立于Apache...
  • JBoss Web和Tomcat的区别

    2019-10-06 19:14:43
    这一青出于蓝而胜于蓝的产品与Tomcat的区别又在哪里?  基于Tomcat内核,青胜于蓝。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分...
  • JBoss Web和 Tomcat的区别

    2019-09-22 14:11:13
    JBoss Web和 Tomcat的区别2009-12-14 11:18在Web2.0的浪潮中,各种页面技术框架不断涌现,为服务器端的基础架构提出了更高的稳定性可扩展性的要求。近年来,作为开源中间件的全 球领导者,JBoss在J2EE应用服务器...
  • 它可以运行在几乎所有广泛使用计算机平台上,由于其跨平台安全性被广泛使用,是最流行的Web服务器端软件之一。  Apache与Tomcat都是Apache开源组织开发用于处理HTTP服务项目,两者都是免费,都可以做...
  • 我们经常使用apache,tomcat,nginx,jetty等服务器,但并不清楚它们间的区别,它们中,哪些是Web服务器,哪些是应用服务器?今天就来告诉你Web服务器理解WEB服务器,首先你要理解什么是WEB? WEB表现为三种形式,即超文本...
  • Apache与Tomcat都是Apache开源组织开发用于处理HTTP服务项目,两者都是免费,都可以做为独立的Web服务器运行。Apache是Web服务器Tomcat是Java应用服务器。Apache服务器 只处理 静态HTML,而tomcat服务器 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,434
精华内容 573
关键字:

web服务器和tomcat的区别