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没关系)。

 

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