ref: https://jingyan.baidu.com/article/47a29f246f354ec0142399dc.html
网上有很多的介绍apache和tomcat的区别,但大部分都是介绍他们性能啊之类的区别,看了还是不懂,这里小编将从使用流程上介绍,虽然都是简单的东西,但肯定能看懂就是了。
方法/步骤
-
首先,用户通过浏览器访问一个网址,我们叫他URL,格式可能是:
http://www.*********com/alspweb/form.html
也可能是
http://www.************.com/alspweb/form.jsp
这样子.
-
这个请求会发送到WEB服务器上,而web服务器上搭建了web服务器软件,就是apache了。所以,apache是一个web服务器软件。
-
apache发现请求的是一个静态的web页面,这个简单啊,apache自己就可以处理。所以,apache获取这个页面。这个页面在服务器上存储的样子类似于下图所示
-
然后,apache将这个页面放在HTTP响应的消息体中(可以理解是,apache将发送一个HTTP响应给浏览器,而这个页面就粘贴在这个响应中一起带过去了。你好像你邮寄了一封信,里面顺便插入了一张HTML页面一样)
-
浏览器收到了HTML页面,OK,此时他还是一段代码,然后解析成具体的页面
-
那么问题来了,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的页面
-
其中,这一段代码就是jsp写的动态的东西了。小编这里写的简单,一般来说,会有一个请求发送到jsp页面,jsp进行处理后再把结果写入到网页。正因为输入的不同会得到不同的结果,也会生成不同的页面,所以是个动态的页面。动态的页面就是说你在请求前这个页面还不存在,请求后通过请求的参数才能得到最后的页面。
-
tomcat对jsp进行解析,然后把jsp的文件解析成一个静态的html页面,再把这个页面交给了apahce
-
apache说,嘿这个是html,我可以处理啊,然后把这个html直接给到了浏览器了。
-
我们通过浏览器看下源码(右键->查看网页的源代码),可以看到,之前的<% %>符号已经不见了
-
所以,我们把apache叫为web服务器软件,他只能处理静态的页面,动态的处理不了。而tomcat可以处理动态的,静态的也能处理,但处理的没有apache厉害。
-
你们可以自己试试,只搭建一个apche,然后在里面放一个.jsp页面,直接访问看看什么结果。