Tomcat(這裏以tomcat表明web服務器)和Servlet對比:
Tomcat能夠理解成用於http平臺的服務器,能接受http的請求並分析。java
Servlet是java內部的一種規範,準確的說,他能夠對參數進行分析,建立對象而後返回數據。nginx
這二者對比,差很少就是Tomcat負責請求鏈接,斷開鏈接,鏈接校驗等操做,Servlet主要處理內部數據操做,注意這個對請求的操做其實是最複雜的。web
Tomcat和Netty對比:
tomcat是web服務器,主要針對http協議,netty支持各類協議,本身造協議都OK,固然netty也能封裝http協議,因此也固然能夠用netty當作web服務器。tomcat
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協議,消息中間件,或者其餘領域的網絡通信。.net
Servlet和Netty對比:
這兩個彷佛沒什麼可對比的,不過都是前身都是java,關係比較遠netty
若是說把java當作元祖,Nio(這裏指java的NIO)當作老爹,Tomcat和netty關係能夠當作兄弟(Nio),tomcat跟nginx表兄關係(nginx跟nio沒父子關係),那Servlet和netty能夠當作堂兄關係(Servlet跟Nio不要緊)。
————————————————中間件