基礎篇--Web容器學習路徑

在開篇詞裏我提到要成長爲一名高級程序員或者架構師,我們需要提高自己知識的廣度和深度。你可以先突破深度,再以點帶面拓展廣度,因此我建議通過深入學習一些優秀的開源系統來達到突破深度的目的。

我會跟你一起在這個專欄裏深入學習 Web 容器 Tomcat 和 Jetty,而作爲專欄更新的第 1 篇文章,我想和你談談什麼是 Web 容器,以及怎麼學習 Web 容器。根據我的經驗,在學習一門技術之前,想一想這兩個問題,往往可以達到事半功倍的效果。

Web 容器是什麼?

讓我們先來簡單回顧一下 Web 技術的發展歷史,可以幫助你理解 Web 容器的由來。早期的 Web 應用主要用於瀏覽新聞等靜態頁面,HTTP 服務器(比如 Apache、Nginx)向瀏覽器返回靜態 HTML,瀏覽器負責解析 HTML,將結果呈現給用戶。

隨着互聯網的發展,我們已經不滿足於僅僅瀏覽靜態頁面,還希望通過一些交互操作,來獲取動態結果,因此也就需要一些擴展機制能夠讓 HTTP 服務器調用服務端程序。於是 Sun 公司推出了 Servlet 技術。

你可以把 Servlet 簡單理解爲運行在服務端的 Java 小程序,但是 Servlet 沒有 main 方法,不能獨立運行,因此必須把它部署到 Servlet 容器中,由容器來實例化並調用 Servlet。

而 Tomcat 和 Jetty 就是一個 Servlet 容器。爲了方便使用,它們也具有 HTTP 服務器的功能,因此 Tomcat 或者 Jetty 就是一個“HTTP 服務器 + Servlet 容器”,我們也叫它們 Web 容器。

其他應用服務器比如 JBoss 和 WebLogic,它們不僅僅有 Servlet 容器的功能,也包含 EJB 容器,是完整的 Java EE 應用服務器。從這個角度看,Tomcat 和 Jetty 算是一個輕量級的應用服務器。

在微服務架構日漸流行的今天,開發人員更喜歡穩定的、輕量級的應用服務器,並且應用程序用內嵌的方式來運行 Servlet 容器也逐漸流行起來。之所以選擇輕量級,是因爲在微服務架構下,我們把一個大而全的單體應用,拆分成一個個功能

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章