apache和tomcat的区别(web服务器和应用服务器的区别)
转自很多地方(主要):https://www.cnblogs.com/soqu36/articles/6341227.htmlapache:是web服务器,可以作为独立的web服务器来运行,但是不能解释java程序;它是普通服务器,只支持html(普通网页),可以通过插件支持php;功能类似与IIS,是html容器。只支持静态网页。Apache是世界使用排名第一的Web服务器。它可以运行在几...
转自很多地方(主要):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页面,直接访问看看什么结果。
更多推荐
所有评论(0)