在日常的網頁開發中,apache的角色是什麼樣的?(如果並不需要將資料上傳伺服器的話),為什麼一定要用

來源:互聯網
上載者:User

回複內容:

如果僅僅為了開發一個網頁,開發完成自己在瀏覽器就能預覽一下,那用不用apache關係不大。但開發的多個網頁,你如果想讓別人也看看效果啥的,這時候,你是會發這些網頁檔案(html檔案)發給這些人,還是搭個環境,給別人提供一個url就OK了呢?
而在搭這個環境的時候,將會用到Apache、IIS這類的Web Server。

而更有些時候,你是需要處理一些動態資源,此時,直接發送源檔案並不能讓人看到實際效果,往往這個時候除了Apache這種Web Server,還需要能解析特定語言的容器,像JSP、Servlet對應的Tomcat。
這樣動態靜態資源都能響應的時候,你的檔案效果就展示了出來。
此處,我在公眾號裡也寫了一些關於Web Server與Web Container的區別,一併寫出來:

所以你會經常看到面試題問: Tomcat 和 Apache 有什麼區別
那到底有什麼區別呢?
對Tomcat這種角色,有一個統一的稱呼:Web容器(Web Container). 類似的Web容器還有Jetty, Resin等。

為啥叫容器呢?

因為在軟體領域,這種管理整體要處理事物的生命週期的,都叫容器。 這裡的Tomcat負責整個Servlet的生命週期(LifeCycle),包含什麼時候建立Servlet,什麼時候初始化內部的一些資源,請求處理的時候執行什麼方法,什麼時候銷毀等。就像一個大家長一樣。所以,你會常聽到Spring的Ioc是通過Ioc容器實現的,因為它也是要管理整個Spring Bean的生命週期的呀。

那回過頭來看,Apache是幹嘛的呢?

像Apache這樣的,也有一類稱呼,叫做Web伺服器(Web Server)。這類兄弟,他們只能處理HTTP協議,例如我們在請求HTML,圖片等這些靜態資源的時候,可以通過Web伺服器來完成。但如果請求的是JSP,PHP等,這些時候,Web伺服器就力不從心,只能將請求轉給合適的人去處理,如果請求JSP或Servlet,那這個合適的人就是上面的Web容器。類似的Web伺服器有Apache, IIS, Nginx等。

所以,總結下,兩者的區別就是Tomcat不僅可以用於處理動態資源,處理Servlet、JSP,也能處理靜態資源,而Apache只能處理靜態資源。這個面試題的變種是Web Container和Web Server有什麼區別,我相信你已經知道答案了。

這個時候,你一定會說,那Tomcat這小子能都幹了,還要Apache幹嘛呢?

哎,這小子當時學的挺多,也都挺好,但處理靜態資源這事,沒學特別精。就像說裁縫可能也自己會做飯,但總歸不如廚師專業。


所以處理靜態資源的時候,可以在Tomcat前面配置一個Apache這類的Web Server,不僅可以高效處理靜態資源,還可以把這些常用的靜態資源緩衝起來,甚至還能完成負載平衡的目的(當然,這還需要後面Web Container做叢集)


歡迎關注。


  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.