`

tomcat http协议与ajp协议

阅读更多

AJP13是定向包协议。因为性能原因,使用二进制格式来传输可读性文本。WEB服务器通过 TCP连接和SERVLET容器连接。为了减少进程生成 socket的花费,WEB服务器和SERVLET容器之间尝试保持持久性的TCP连接,对多个请求/回复循环重用一个连接。一旦连接分配给一个特定的请求,在请求处理循环结束之前不会在分配。换句话说,在连接上,请求不是多元的。这个是连接两端的编码变得容易,虽然这导致在一时刻会有很多连接。

  一旦WEB服务器打开了一个到SERVLET容器的连接,连接处于下面的状态:

◆ 空闲

这个连接上没有处理的请求。

◆ 已分派

连接正在处理特定的请求。

  一旦一个连接被分配给一个特定的请求,在连接上发送的基本请求信息是高度压缩的。在这点,SERVLET容器大概准备开始处理请求,当它处理的时候,它能发回下面的信息给WEB服务器:

◆ SEND_HEADERS

发送一组头到浏览器。

◆ SEND_BODY_CHUNK

   发送一块主体数据到浏览器。

◆ GET_BODY_CHUNK

从请求获得下一个数据如果还没有全部传输完,如果请求内容的包长度非常大或者长度不确定,这是非常必要的。例如上载文件。注意这和HTTP的块传输没有关联。

◆ END_RESPONSE

结束请求处理循环。

 

Tomcat服务器通过Connector连接器组件与客户程序建立连接,Connector组件负责接收客户的请求,以及把Tomcat服务器的响应结果发送给客户。默认情况下,Tomcat在server.xml中配置了两种连接器:

  

  <!-- Define a non-SSL Coyote HTTP/1.1

  Connector on port 8080 -->

  <Connector port="8080"

  maxThreads="150"

  minSpareThreads="25"

  maxSpareThreads="75"

  enableLookups="false"

  redirectPort="8443"

  acceptCount="100"

  debug="0"

  connectionTimeout="20000"

  disableUploadTimeout="true" />

  

  <!-- Define a Coyote/JK2 AJP 1.3

  Connector on port 8009 -->

  <Connector port="8009"

  enableLookups="false"

  redirectPort="8443" debug="0"

  protocol="AJP/1.3" />  

  第一个连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。  

  第二个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。

  Web客户访问Tomcat服务器上JSP组件的两种方式如图22-1所示。

   Tomcat Port 8009 与AJP13协议 - 俗称懒人 - 懒

  图22-1 Web客户访问Tomcat服务器上的JSP组件的两种方式  

  

在图22-1中,

Web客户1直接访问Tomcat服务器上的JSP组件,他访问的 URL为http://localhost:8080 /index.jsp。

 

Web客户2通过HTTP服务器访问Tomcat服务器上的JSP组件。假定HTTP服务器使用的HTTP端口为默认的80端口,那么Web客户2访问的URL为http://localhost:80/index.jsp 或者 http://localhost/index.jsp。

分享到:
评论

相关推荐

    关于Tomcat的AJP端口禁用.docx

    AJP端口默认设置为8009,它允许远程服务器通过AJP协议与Tomcat进行通信。这种通信方式虽然可以实现负载均衡和反向代理,但同时也可能导致以下安全隐患: 1. **中间人攻击(Man-in-the-Middle Attack)**:由于AJP...

    Tomcat-Ajp-lfi_python_

    2. **AJP协议**:AJP协议允许Web服务器与Tomcat之间的高效通信,减少了HTTP协议带来的额外开销,提升了服务器性能。AJP连接器(Coyote Connector)负责处理AJP请求。 3. **Local File Inclusion(LFI)漏洞**:LFI...

    ajp13 tomcat 和iis整合

    本文将深入探讨AJP13,它是早期版本的AJP协议,以及如何将其与Tomcat和IIS整合。 【描述】:“超智能的tomcat和iis整合工具” 整合Tomcat和IIS可以充分利用它们各自的优势。Tomcat以其高性能和轻量级特性处理Java...

    apache +tomcat集群 ajp_proxy实际操作

    AJP(Apache Jserv Protocol)是Apache与Tomcat之间通信的一种高效协议。通过AJP Proxy,Apache可以将请求转发给后端的多个Tomcat实例,从而实现负载均衡。 **1. 引入模块** - 在`httpd.conf`文件中添加以下内容来...

    AJP for Nginx

    这会将所有接收到的HTTP请求通过AJP协议转发到本地的Tomcat服务器。 **注意事项** 1. **兼容性**:确保Nginx AJP模块与你的Nginx版本和Tomcat版本兼容。 2. **安全性**:AJP协议可能存在安全风险,因此要确保配置...

    利用apache的proxy-ajp做apache与tomcat的结合(转载) jackey

    AJP协议是一种轻量级的通信协议,主要用于Web服务器和应用服务器之间,能有效降低HTTP协议的开销,提高服务器之间的数据传输效率。 首先,我们需要在Apache服务器上安装`mod_proxy_ajp`模块。这通常涉及到下载...

    CNVD-2020-10487-Tomcat-Ajp-lfi-master.zip

    2. **CVE-2020-1938**:这个漏洞,称为“Tomcat AJP协议路径遍历”,允许攻击者通过AJP(Apache JServ Protocol)连接发送特殊构造的请求,可能导致服务器上的文件被任意读取,或者在某些配置下执行任意代码。...

    MyEclipse中无法启动tomcat服务器的问题

    cmd下确实是可以把Tomcat启动的,所有问题肯定还是出在MyEclipse的配置上面。再次回到MyE,突然回想起以前遇到过Debug mode运行的时候,要是Eclipse中存在有断点的话,就无法正常启动Tomcat

    apr库(tomcat优化)

     AJP Connector, 基于AJP协议,AJP是专门设计用来为tomcat与http服务器之间通信专门定制的协议,能提供较高的通信速度和效率。如与Apache服务器集成时,采用这个协议。  APR HTTP Connector, 用C实现,通过JNI调用...

    tomcat 与其它http服务器集成

    mod_jk是Apache的Java连接器,负责通信协议的转换,将请求转发给Tomcat处理,而mod_proxy_ajp则使用AJP(Apache JServ Protocol)协议,同样实现负载均衡和请求转发。这种方式下,Apache主要处理静态资源,而动态...

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

    mod_jk是用于Apache与Tomcat间通信的Apache模块,它通过AJP协议处理请求转发。mod_proxy_ajp则是Apache 2.2及以上版本的内置模块,同样支持AJP协议。这两种模块都允许Apache直接将请求传递给Tomcat,而无需通过HTTP...

    CNVD-2020-10487-Tomcat-Ajp-lfi-Scanner:CNVD-2020-10487 CVE-2020-1938,扫描仪工具

    python2多线程扫描Tomcat-Ajp协议文件重新定义 刷src分狗的福利poc扩大 poc作者不是本人!!!! 操作 1,将需要扫描的域名/ ip放于ip.txt ip.txt中不需要加协议,某种 127.0.0.1 www.baidu.com www.google.com 2...

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

    如果不希望使用AJP协议,可以选择mod_proxy_http模块,让Apache通过HTTP协议与Tomcat通信。这种方式更适用于Tomcat运行在另一个服务器或者不同端口的情况。 四、配置示例 以mod_proxy为例,配置步骤如下: 1. ...

    Tomcat与Apache服务器集成

    - **通信协议**:Apache和Tomcat之间通常使用AJP(Apache JServ Protocol)或HTTP/HTTPS协议通信。AJP是一种轻量级的通信协议,适用于内部网络环境,而HTTP/HTTPS更通用,适合互联网环境。 - **负载均衡**:如果有多...

    Apache-Tomcat从文件包含到RCE漏洞原理深入分析1

    由于AJP协议不直接暴露给最终用户,而是由Web服务器(如Apache)与Tomcat之间进行交互,攻击者可能通过其他途径(如跨站脚本攻击或其他已知漏洞)获取对AJP连接的控制权,从而触发文件包含漏洞。 漏洞复现和分析...

    AJP+IIS7+ISAPI

    AJP协议允许IIS和Tomcat共享相同的网络端口,通过TCP/IP进行通信。它主要处理静态内容由IIS处理,动态内容由Tomcat处理,这样可以充分利用两者的优点,提高Web应用的整体性能。AJP支持会话持久性,能保持用户会话...

    tomcat和apache mod_jk.so

    由于tomcat的HTTP处理部分都由Java所写...组装成AJP协议格式的包,然后选取一条空闲的链接,发送给后台的tomcat服务器。等到 后台将数据发送过来时,接收并解析AJP协议,重新组装成HTTP协议,然后把结果发送给 客户端。

    Tomcat多端口下发布及eclipse运行调试预研

    - **AJP (Apache JServ Protocol)**:AJP是一种专用的协议,用于Tomcat和前端Web服务器(如Apache HTTP Server)之间通信。它能保持持久连接,提高性能,尤其是在处理静态内容时。AJP主要用于减少HTTP协议的开销,...

    Apache_HTTP_Server_与_Tomcat_的三种连接方式介绍.doc

    JK(即 mod_jk)是最常见的 Apache 与 Tomcat 的连接方式之一,通过 AJP(Apache Jserv Protocol)协议与 Tomcat 通信。AJPConnector 默认监听于端口 8009。 - **JK 的工作原理**:JK 模块作为 Apache 的一个插件,...

    tomcat-connectors-1.2.40-src.zip

    1. AJP协议:AJP(Apache JServ Protocol)是一种轻量级的通信协议,主要用于Web服务器(如Apache HTTPD)与应用服务器(如Tomcat)之间的通信。Ajp13Protocol处理AJP请求,提高Web服务器和应用服务器之间的通信效率...

Global site tag (gtag.js) - Google Analytics