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所示。

   

  图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。

原文:http://blog.chinaunix.net/uid-20662363-id-3012760.html

时间: 2024-10-15 02:47:41

tomcat http协议与ajp协议的相关文章

Apache Tomcat AJP协议高危漏洞风险提示

关于Apache Tomcat存在文件包含漏洞的安全公告 2020年1月6日,国家信息安全漏洞共享平台(CNVD)收录了由北京长亭科技有限公司发现并报送的Apache Tomcat文件包含漏洞(CNVD-2020-10487,对应CVE-2020-1938).攻击者利用该漏洞,可在未授权的情况下远程读取特定目录下的任意文件.目前,漏洞细节尚未公开,厂商已发布新版本完成漏洞修复. 一.漏洞情况分析 Tomcat是Apache软件基金会Jakarta 项目中的一个核心项目,作为目前比较流行的Web应

关于Apache Tomcat AJP协议高危漏洞的风险提示

一.漏洞公告 2020年2月4日,Apache Tomcat官方发布了新的版本,该版本修复了一个影响所有版本(7.*.8.*.9.*)的文件包含漏洞,但官方暂未发布安全公告,2020年2月20日,CNVD发布了漏洞公告,对应漏洞编号:CNVD-2020-10487,漏洞公告链接:https://www.cnvd.org.cn/flaw/show/CNVD-2020-10487 根据公告,Apache Tomcat存在的文件包含漏洞能导致配置文件或源码等敏感文件被读取,建议尽快升级到漏洞修复的版本

Tomcat AJP协议文件包含漏洞(CVE-2020-1938)

Tomcat AJP协议由于存在实现缺陷导致相关参数可控,攻击者利用该漏洞可通过构造特定参数,读取服务器webapps目录下的任意文件,但不能跨到上级目录. PoC来自GitHub:https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi 第一步:利用FOFA搜索8009端口 port="8009" && country="CN" 第二步:运行PoC python2.7 CNVD-2020-10

AJP协议总结与分析

Tomcat服务器通过Connector连接器组件与客户程序建立连接,Connector组件负责接收客户的请求,以及把Tomcat服务器的响应结果发送给客户.默认情况下,Tomcat在server.xml中配置了两种连接器: <!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 --> <Connector port="8080" maxThreads="150" minSpare

tomcat中http与https协议socket工厂

tomcat中http与https协议socket工厂,布布扣,bubuko.com

Tomcat添加配置使用https协议

第一步.创建tomcat证书 1.打开cmd窗口,定位到jdk的安装目录(D:\javaEnvironment\apache-tomcat-7.0.65\bin这是我的目录),执行如下命令: keytool -genkey -alias safetomcat -keyalg RSA -keystore c:/leadsec -validity 2000 出现如下界面: 以上命令将生产一对非对称密钥和自我签名的证书,保存在c:\ leadsec 注意:“名字与姓氏”应该是域名,输成了姓名,和真正运

深入理解HTTP协议、HTTP协议原理分析

深入理解HTTP协议.HTTP协议原理分析 目录(?)[+] http协议学习系列 1. 基础概念篇 1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本.其中最著名的就是RFC 26

网络协议 12 - HTTP 协议:常用而不简单

系列文章传送门: 网络协议 1 - 概述 网络协议 2 - IP 是怎么来,又是怎么没的? 网络协议 3 - 从物理层到 MAC 层 网络协议 4 - 交换机与 VLAN:办公室太复杂,我要回学校 网络协议 5 - ICMP 与 ping:投石问路的侦察兵 网络协议 6 - 路由协议:敢问路在何方? 网络协议 7 - UDP 协议:性善碰到城会玩 网络协议 8 - TCP 协议(上):性恶就要套路深 网络协议 9 - TCP协议(下):聪明反被聪明误 网络协议 10 - Socket 编程(上)

Object-C非正式协议与正式协议的区别

一.非正式协议 显然这个名词是相对于正式协议而言的.在解释非正式协议之前,先引用两段话: 1.在<Cocoa设计模式>第六章类别的6.3.2把类别用于非正式协议一节中,这样写到: 非正式协议通常定义为NSObject的类别.类别接口中指定的方法可能会或者可能不会被框架类实际地实现.非正式协议位于一种设计灰区中.正式协议由编译器检查并且代表一种关于对象能力的保证,但是非正式协议不会做出保证----而只会给出提示. 2.苹果官方文档Cocoa Core Competencies一文中是这样介绍非正