Tomcat,servlet以及netty之間的簡單區別

Tomcat(這裏以tomcat代表web服務器)和Servlet對比:

Tomcat可以理解成用於http平臺的服務器,能接受http的請求並分析。

Servlet是java內部的一種規範,準確的說,他可以對參數進行分析,創建對象然後返回數據。

這兩者對比,差不多就是Tomcat負責請求連接,斷開連接,連接校驗等操作,Servlet主要處理內部數據操作,注意這個對請求的操作實際上是最複雜的。

 

Tomcat和Netty對比:

tomcat是web服務器,主要針對http協議,netty支持各種協議,自己造協議都OK,當然netty也能封裝http協議,所以也當然可以用netty當做web服務器。

Tomcat是基於netty嗎?貌似不是,tomcat官網上是這麼寫的:

Tomcat 8.5 and 9.0 have completely dropped the BIO connector.

也就是說,老版本tomcat只有bio,後來加入了支持nio功能,8.5之後乾脆直接放棄bio模式了。

Tomcat用java後來的NIO來優化自己,netty也是基於nio,不過用netty做一個http服務器似乎沒那麼輕鬆,所以netty更多領域在於走各種rpc協議,消息中間件,或者其他領域的網絡通訊。

 

Servlet和Netty對比:

這兩個似乎沒什麼可對比的,不過都是前身都是java,關係比較遠

如果說把java當做元祖,Nio(這裏指java的NIO)當做老爹,Tomcat和netty關係可以當做兄弟(Nio),tomcat跟nginx表兄關係(nginx跟nio沒父子關係),那Servlet和netty可以當做堂兄關係(Servlet跟Nio沒關係)。

 

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