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頁面,直接訪問看看什么結果。