`
netment
  • 浏览: 58833 次
文章分类
社区版块
存档分类
最新评论

关于TOMCAT的对HTTP1.1协议的长连接的支持

阅读更多
   在HTTP1.1协议中引入了名为conection header,主要是为了支持长连接。当该值为keep-alive是,一个TCP连接将会处理多个HTTP请求,而不是每个请求打开一个连接,这对避免创建新的TCP连接有很好的作用,由于创建TCP连接的开销大,因此长连接方式的HTTP请求在效率上也是比较高的。但是这也引入了一个DoS攻击的问题,就是客户端完全可以创建这个连接后不释放,从而耗尽服务器端的连接数。
   在TOMCAT的源代码中,对DoS攻击是做了比较完整的考虑的。在具体处理HTTP请求的类org.apache.coyote.http11.Http11Processor中,引入了一个maxKeepAliveRequests的属性,该属性的意义在于当一个连接的请求数达到某个上限时 ,自动关闭该连接。查看其源代可以知道,TOMCAT对长连接的支持是通过一个while循环实现的,在方法public void process(InputStream input, OutputStream output) throws IOException 中有一段这样子的代码  while (started && !error && keepAlive) {// do process the request igonred here},只要该请求的处理没有发生错误,并且满足keepAlive的要求,就会继续循环处理请求而不关闭连接。
分享到:
评论

相关推荐

    HTTP1.1 服务器端及servlet引擎 java实现

    综上所述,实现HTTP1.1服务器端和Servlet引擎涉及的知识点包括:HTTP1.1协议、Java Socket编程、Servlet规范、Servlet容器(如Tomcat、Jetty)、Servlet生命周期、Java HttpServer API,以及如何在Java中处理并发...

    tomcat配置 连接数(优化)

    4. **连接器协议选择**:不同的连接器协议(如NIO、APR或HTTP/2)对连接数的处理方式不同。NIO和APR通常比Bio更能处理大量并发连接。 5. **超时设置**:`connectionTimeout`表示服务器等待客户端完成请求的最大时间...

    tomcat的连接器最新版

    例如,如果你在`<Connector>`元素中设置`protocol="HTTP/1.1"`,则表示该连接器使用HTTP/1.1协议处理请求。此外,还可以通过`maxThreads`属性控制并发线程数,以处理更多的并发请求,`maxConnections`则限制了服务器...

    tomcat全套配置https协议

    本教程将详细讲解如何配置Tomcat以支持HTTPS协议,包括生成证书、配置端口以及强制所有HTTP请求转换为HTTPS。 首先,我们需要了解HTTPS的核心概念:SSL/TLS证书。这个证书由权威的证书颁发机构(CA)签发,包含公钥...

    Apache HTTP Server 与 Tomcat 的连接方式介绍

    本文将详细介绍Apache HTTP Server与Tomcat的连接方式。 一、Apache HTTP Server Apache HTTP Server是一款强大的HTTP服务器,能够处理静态内容,如HTML、CSS、JavaScript等,并支持多种模块扩展,如mod_rewrite...

    Tomcat 9 软件及其源码

    2. WebSocket 1.1支持:Tomcat 9 支持最新的 WebSocket 1.1 规范,包括对二进制数据的支持和对扩展的更好的支持。 3. HTTP/2支持改进:Tomcat 9 对 HTTP/2 的支持进行了改进,包括更好的性能和更稳定的连接管理。 4....

    基于tomcat的连接数与线程池详解

    如果没有指定protocol,Tomcat将使用默认值HTTP/1.1。Tomcat 7和Tomcat 8的默认protocol处理逻辑不同,根据是否有APR本地库的支持来选择BIO或APR,而在Tomcat 8.5和Tomcat 9.0,不再支持BIO。 连接数和线程池的配置...

    tomcat 7 和 tomcat 8

    3. HTTP/2支持:Tomcat 8开始支持HTTP/2协议,提高了Web应用的响应速度和性能,尤其是对于有多个资源请求的页面。 4. ALPN(Application-Layer Protocol Negotiation):为实现HTTP/2提供了更高效的连接处理。 5. ...

    Tomcat与JDK版本对应关系.docx

    - 移除了HTTP和AJP连接器的BIO实现以及对Comet API的支持。 - 性能优化,提高稳定性。 ##### 3. Apache Tomcat 7.x - **核心特性**: - 实现Servlet 3.0、JSP 2.2、EL 2.2及WebSocket 1.1规范。 - 内存泄漏...

    apr库(tomcat优化)

    它又分为BIO Http Connector与NIO Http Connector两种,后者提供非阻塞IO与长连接Comet支持。  AJP Connector, 基于AJP协议,AJP是专门设计用来为tomcat与http服务器之间通信专门定制的协议,能提供较高的通信速度...

    tomcat支持https配置

    - `protocol="HTTP/1.1"`:指定连接器协议。 - `scheme="https"`:指定协议类型。 - `secure="true"`:指示该连接器是安全的。 - `port="443"`:默认的HTTPS端口。 - `SSLEnabled="true"`:启用SSL。 - `...

    tomcat5/tomcat5.5安装包

    5.5版本还改进了连接器模块,支持HTTP/1.1协议的更多特性,比如持久连接和压缩传输,从而提高网络效率。 在解压这个"tomcat安装包"后,用户通常会找到以下几个关键文件夹和文件: 1. `bin`:包含启动、停止和管理...

    how tomcat work 中文版

    Tomcat的核心组件包括Catalina(Servlet容器)、Jasper(JSP引擎)和 Coyote(HTTP/1.1协议处理器)。下面将深入讲解这些组件以及Tomcat的工作流程。 **Catalina(Servlet容器):** Catalina是Tomcat的核心,负责...

    springboot-keepalive设置测试

    Jodd提供了HttpClient模块,支持HTTP/1.1协议,可以方便地设置连接保持时间和其他相关参数。 测试步骤可能包括: 1. 配置Jodd HttpClient以使用持久连接。 2. 发送一系列HTTP请求,并观察连接是否被重用。 3. 检查...

    解决tomcat配置ssl错误的解决办法

    在 Tomcat 服务器中配置 SSL 加密连接是非常重要的,然而在 Tomcat 6.0.33 版本中,默认启用了 APR(APR 是通过 JNI 访问的可移植库,可以提高 Tomcat 的性能和伸缩性),这使得传统的 SSL 配置方式无法使用。...

    tomcat-coyote.jar.zip

    例如,`org.apache.coyote.http11.Http11NioProtocol`和`org.apache.coyote.http11.Http11AprProtocol`分别对应NIO和APR的HTTP/1.1协议处理器,它们负责处理HTTP/1.1协议的请求和响应。 除了主JAR文件,压缩包内还...

    配置tomcat支持comet

    Comet功能依赖于Tomcat的APR/native库,这个库提供了一种高效的方式来处理长时间的HTTP连接。在`conf/server.xml`中找到`<GlobalNamingResources>`标签,添加以下内容: ```xml ``` 确保已安装了Apache Portable ...

    Apache-tomcat服务器文件

    - Coyote连接器支持HTTP/1.1协议,还可以通过AJP协议与前端Web服务器(如Apache HTTPD)通信。 9. **JNDI(Java Naming and Directory Interface)** - Tomcat支持JNDI,可用于查找资源,如数据源、邮件会话等。 ...

    tomcat7和8

    3. **HTTP/2支持**:Tomcat 8.5及以上版本开始支持HTTP/2协议,这是HTTP/1.1的升级版,能提高网络传输效率,降低延迟。 4. **TLS增强**:Tomcat 8增强了Transport Layer Security (TLS)配置,提供了更多的安全选项,...

Global site tag (gtag.js) - Google Analytics