在日常的網頁開發中,apache的角色是什麼樣的?(如果並不需要將數據上載伺服器的話),為什麼一定要用
01-15
如果僅僅為了開發一個網頁,開發完成自己在瀏覽器就能預覽一下,那用不用apache關係不大。但開發的多個網頁,你如果想讓別人也看看效果啥的,這時候,你是會發這些網頁文件(html文件)發給這些人,還是搭個環境,給別人提供一個url就OK了呢?而在搭這個環境的時候,將會用到Apache、IIS這類的Web Server。
所以你會經常看到面試題問: Tomcat 和 Apache 有什麼區別?
那到底有什麼區別呢?對Tomcat這種角色,有一個統一的稱呼:Web容器(Web Container). 類似的Web容器還有Jetty, Resin等。為啥叫容器呢?
因為在軟體領域,這種管理整體要處理事物的生命周期的,都叫容器。 這裡的Tomcat負責整個Servlet的生命周期(LifeCycle),包含什麼時候創建Servlet,什麼時候初始化內部的一些資源,請求處理的時候執行什麼方法,什麼時候銷毀等。就像一個大家長一樣。所以,你會常聽到Spring的Ioc是通過Ioc容器實現的,因為它也是要管理整個Spring Bean的生命周期的呀。那回過頭來看,Apache是幹嘛的呢?哎,這小子當時學的挺多,也都挺好,但處理靜態資源這事,沒學特別精。就像說裁縫可能也自己會做飯,但總歸不如廚師專業。
所以處理靜態資源的時候,可以在Tomcat前面配置一個Apache這類的Web Server,不僅可以高效處理靜態資源,還可以把這些常用的靜態資源緩存起來,甚至還能完成負載均衡的目的(當然,這還需要後面Web Container做集群)。
歡迎關注。
http://weixin.qq.com/r/ajn07CPE6n6VrWeP92x4 (二維碼自動識別)
推薦閱讀:
※PHP初學者應該選擇哪個版本的ThinkPHP?
※為什麼http請求要3次握手與4次揮手?
※如何評價thinkphp5.0?
※為什麼rsa加密時我把密鑰長度設成256位,太長的字元串加密就會出錯?
※php如何實現數組合併但鍵值相同的數組不互相覆蓋?
TAG:PHP | Apache | ApacheTomcat |