协议
常用的: TCP/IP协议
TCP, UDP
socket
网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket;
Socket是TCP/IP协议的一个十分流行的编程界面;
理解为Socket是封装和操作协议的最小使用工具;
不同语言有不同语言的socket实现, 但是他们之间是可以直接通过相同协议进行通信的;
socketIO
java中提供了Socket接口和ServerSocket接口分别来代表客户端和服务端
在此基础上, 丰富了SocketIO编程模型, BIO,NIO,AIO等, 封装了java Socket的使用
netty
是NIO框架
封装了NIO通信的使用, 也就是socket通信的使用
tomcat
Tomcat和netty类似, 是对SocketIO的封装, 支持BIO,NIO,和APR, 可在server.xml配置 Connector的protocol
Tomcat是Servlet容器
同时Tomcat主要负责Http中TCP的建立连接, 同时将Http请求交由Servlet实例来处理
servlet
Servlet 为创建基于 web 的应用程序提供了基于组件、独立于平台的方法,可以不受 CGI 程序的性能限制。Servlet 有权限访问所有的 Java API,包括访问企业级数据库的 JDBC API。
协议无关, 通常其实现只有HttpServlet, 也就仅支持Http协议,
建立连接和通信是Servlet容器(例如Tomcat)已经做了, 所以Servlet处理具体的业务
参考:
Tomcat Connector三种运行模式(BIO, NIO, APR)的比较和优化