web伺服器、Apache 和tomcat 的關係 - 程式前沿
文章推薦指數: 80 %
Tomcat是一個執行環境,或者叫容器。
Tomcat負責例項化jsp並且處理請求(通俗的講就是“執行”jsp,搞到對應的響應資訊),並且返回一個響應 ...
程式語言前端開發IOS開發Android開發雲端運算人工智慧伺服器搜尋資料庫軟體開發工具web伺服器、Apache和tomcat的關係2018.07.15程式語言JavaWeb,kali的web,mq和web,mvc和web,php和web,web依賴webHOME程式語言web伺服器、Apache和tomcat的關係Advertisement以一次JSP請求響應為例,講解伺服器,Apache、Tomcat之間的關係。
帶著這樣一個概念去看:Apache與ApacheTomcat(簡稱Tomcat)都是可以獨立執行的伺服器。
你平時見到的apache-tomcat-7.0.72實際上只是Tomcat伺服器。
此處整合了Apache和ApacheTomcat。
Apache用來處理靜態資源,減少Tomcat的服務開銷。
目錄1.先來個熱身2.熱身,again3.現在,進入正題3.1.概念闡述3.2.Apache與Tomcat比較聯絡先來個熱身一個請求到發出到響應返回的全過程 首先,客戶端發出一個請求 看到瀏覽器上的URL地址了麼,那就是你的請求的主要內容。
請求以一串文字的形式傳送,例如http://www.baidu.com代表按照http協議獲取www.baidu.com這個資源(關於資源的概念請參見URI和URL)。
當然實際上你的請求不是這麼寫的,這麼寫只是為了讓你有一個直觀的感受,具體請參見HTTP協議第二步,伺服器(硬體)收到這個請求,也就是那一串文字。
伺服器的概念之一就是一臺電腦。
你提交的請求會被髮送到這臺電腦上。
顯然啊,伺服器就是一臺電腦,沒有軟體的話它是無法識別請求並做出響應的第三步,伺服器(硬體)將請求交付給伺服器(軟體,例如Apache就是一個常用的伺服器軟體)。
假設請求的是一個動態頁面(動態頁面就是需要動態生成的頁面,例如QQ空間,每人每時每刻都不同,需要動態生成),在本例中是JSP,那麼apache則會將請求繼續轉給下一個部分第四步,伺服器(軟體)將請求交給Tomcat 因為Apache本身不提供動態頁面訪問能力的,所以對jsp的支援要靠其他的東西來實現,這個東西類似於外掛(但嚴格來說Tomcat並不是Apache的一個外掛)。
在本例中,這個外掛就是Tomcat。
要注意:Tomcat本身也是可以單獨作為伺服器來執行的。
Tomcat有時也被稱為ApacheTomcat,這個Apache指的並不是Apache伺服器,而是一個“商標”,因為Tomcat是屬於Apache這個專案的 Tomcat是一個執行環境,或者叫容器。
Tomcat負責例項化jsp並且處理請求(通俗的講就是“執行”jsp,搞到對應的響應資訊),並且返回一個響應到apache,apache則繼續將響應返回到客戶端。
至此,一個響應完成熱身,again以上內容說白了就是輸入和輸出,給定一個輸入,產生一個輸出。
根據這個,我們來模擬下web的進化史。
最初,人們的需求很低,只要求能夠有靜態頁面就好了。
舉個例子,例如要做一個公告網頁,上面公示每天的重要通知。
怎麼做呢?好辦啊! 我們用一個簡化的輸入輸出來表示,只要你輸入“公告”,我就輸出“2017-3-26XXX寫下了第一篇關於幾個概念的理解的部落格”,不要想得太多,就是一個標準輸入,標準輸入。
用Java寫很簡單,寫成一個控制檯標準輸入輸出就好了。
用虛擬碼表示如下,if(輸入=“公告”)then
print“2017-3-26XXX寫下了一篇關於幾個概念的理解的部落格”12這就是滿足了需求,就這麼簡單,然後將他改成網路IO就好了。
要是公告變了怎麼辦?好辦,將print“2017-3-26XXX寫下了第一篇關於幾個概念的理解的部落格”該掉就好了。
也就是說,只要資訊變動,你就要重寫訊息源,改動原始碼。
很蠢是吧。
這還好說,要是生成的像QQ空間那樣的頁面怎麼搞?好辦!套模板啊。
一個頁面變動的只是少數,有很大一部分是不變的。
想填空題一樣,將空填起來就好了,像這樣date="2017-3-26"
name="一隻準程式設計師"
about="幾個概念的理解"
if(輸入=“公告”)then
printdatename“寫下了一篇關於"about"的部落格”12345這幾個變數完全可以從資料庫中自動獲取。
也就是說,只要更新資料庫,然後頁面就會自動更新了。
雖然還是很蠢,但是動態頁面就是這個原理。
(你寫JSP不就是填空嗎,在模板上填空。
${name}這樣的不就是“空”嗎)總結下,Apache負責請求轉發&&靜態頁面處理,Tomcat來處理動態頁面解析現在,進入正題概念闡述藉助以上過程和概念,來談一談伺服器、Apache、Tomcat之間的關係伺服器 經過以上過程,這個概念很熟了吧,有兩個主要概念 硬體:一臺電腦。
這臺電腦上執行著至少一個伺服器軟體,能夠處理請求軟體:一個提供網頁的伺服器程式。
處理請求並返回響應Apache Apache就是一個伺服器(軟體),提供了靜態頁面的訪問能力。
它配置上外掛(模組)後可以以各種語言實現動態頁面。
(但是一定要注意Tomcat並不是Apache的外掛)Tomcat ApacheTomcat(即平時所說的Tomcat),也是一個伺服器。
在這個案例中,Tomcat充當了一個外掛的作用,這個外掛是針對於Java的,或者說是jsp/servlet的。
它是一個容器。
何為容器?容器麼,就是容器。
容的是什麼,JSP、Servlet。
容器管理jsp、servlet的宣告週期,包括建立,執行,銷燬。
它是一個jsp、servlet的執行環境。
通俗點說,請求發過來,Tomcat負責執行JSP、Servlet,並返回結果。
關於生命週期這東西,在此不做闡述。
也就是說,沒有Tomcat,Apache是不認你JSP的。
懂設計模式的可以想想了。
。
。
當然,整個過程都有設計模式的影子Apache與Tomcat比較聯絡apache支援靜態頁,tomcat支援動態的,比如servlet等。
一般使用apachetomcat的話,apache只是作為一個轉發,對jsp的處理是由tomcat來處理的。
apache可以支援php\cgi\perl,但是要使用java的話,你需要tomcat在apache後臺支撐,將java請求由apache轉發給tomcat處理。
apache是web伺服器,Tomcat是應用(java)伺服器,它只是一個servlet(jsp也翻譯成servlet)容器,可以認為是apache的擴充套件,但是可以獨立於apache執行。
共同點兩者都是apache組織開發的兩者都有HTTP服務的功能兩者都是免費的不同點: Apache是專門用了提供HTTP服務的,以及相關配置的(例如虛擬主機、URL轉發等等)Tomcat是Apache組織在符合J2EE的JSP、Servlet標準下開發的一個JSP伺服器Advertisement写评论取消回覆很抱歉,必須登入網站才能發佈留言。
近期文章Vue中容易被忽視的知識點2019.12.09if我是前端Leader,談談前端框架體系建設2019.12.09Spark入門(一)用SparkShell初嘗Spark滋味2019.12.08Spark入門(二)如何用Idea運行我們的Spark項目2019.12.08Spark入門(三)Spark經典的單詞統計2019.12.08Spark入門(四)Spark的map、flatMap、mapToPair2019.12.08Spark入門(五)Spark的reduce和reduceByKey2019.12.08Spark入門(六)Spark的combineByKey、sortBykey2019.12.08Spark入門(七)Spark的intersection、subtract、union和distinct2019.12.08Spark實戰尋找5億次訪問中,訪問次數最多的人2019.12.08AdvertisementAdvertisement
延伸文章資訊
- 1tomcat 是什麼 - 程式人生
Tomcat是Apache 軟體基金會(Apache Software Foundation)的Jakarta 專案中的一個核心專案,由Apache、Sun和部分公司和個人一起開發完善的輕量級W...
- 2Apache Tomcat - 維基百科,自由的百科全書
Tomcat是由Apache軟體基金會屬下Jakarta專案開發的Servlet容器,按照Sun Microsystems提供的技術規範,實現了對Servlet和JavaServer Page(...
- 3【Tomcat】Tomcat原理與系統架構 - IT人
Tomcat是⼀個由⼀系列可配置(conf/server.xml)的元件構成的Web容器,⽽Catalina是Tomcat的servlet容器。 Tomcat本質上就是⼀款Servlet容器, ...
- 4什麼是Tomcat 伺服器軟體? - WP建站
您可以將Tomcat 用於一般的HTTP 應用程序,但它也非常適合呈現動態內容,例如互動式網頁。 Tomcat 與其他Web 伺服器有什麼不同? Tomcat 是由Apache ...
- 5web伺服器、Apache 和tomcat 的關係 - 程式前沿
Tomcat是一個執行環境,或者叫容器。Tomcat負責例項化jsp並且處理請求(通俗的講就是“執行”jsp,搞到對應的響應資訊),並且返回一個響應 ...