文档介绍:初探Tomcat 通信及其配置
目录
Tomcat连接器简介
Tomcat连接器启动和处理
Tomcat连接器启动和处理配置
Tomcat连接器配置应用和优化
Q&A
Tomcat版本
特性
Java相关
Java版本6
Servlet API ,,
Servlet异步处理
内存泄露检测预防
安全性
防止sessionid攻击
使用随机数去防止跨站脚本攻击
…..
其他
异步日志记录
更容易嵌入式开发
什么是连接器(Connector)
负责监听到达tomcat的TCP请求,并将这些请求转换成Servlet规范中所定的Request,再将转换后的请求交给Engine组件处理,最后将Engine返回的Response返回给客户端.
职责
配置和初始化
管理socket
处理请求
连接器在tomcat中的位置
Server
Service
Container组件
Engine
Host
Context
Connectors组件
Connector
Endpoint
Protocol
Processor
Adapter
连接器种类
HTTPConnector
BIO Http Connector
NIO Http Connector--et支持
APR HTTP Connector—C实现,JNI调用,主要提升对静态资源(如HTML、图片、CSS、JS等)的访问性能
AJP Connector--与http服务器之间通信专门定制的协议
连接器启动
连接器启动相关配置
配置项
说明
acceptCount
ServerSocketChannel. socket().bind方法的backlog参数,socket可以被积压的请求队列的最大长度,
minSpareThreads
ThreadPoolExecutor构造方法的coolPoolSize参数,线程池中始终保留的线程数量
maxThreads
ThreadPoolExecutor构造方法的maximumPoolSize,线程池中允许处理socket线程的最大数量
maxConnections
connectionLimitLatch的构造参数,连接器所能接收处理的最大连接数
连接器处理请求
连接器处理相关配置
配置项
说明
maxConnections
Endpoint run方法中判断是否已经到达最大连接数,如果到达最大连接数后将等待。
Socket属性 recieveBuffSize,sendBuffSize等
Socket往poller注册前设置socket的参数。作为后面从socket读取数据和发送数据的参数。
et
et servlet,支持事件的方式异步处理servlet
maxHeaderCount
Request中header的最大数量
disableUploadTimeout, connectionUploadTimeout
Http11Processor的process方法中设置为接收客户端socket数据的超时时间,作为socket的sotimeout属性设置