`
weifly
  • 浏览: 239390 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jetty ajp实现分析

 
阅读更多

Ajp13Parser用于解析web服务器传过来的输入流,对于每个AJP连接都有一个对应的Ajp13Parser对象。Ajp13Generator用于产生输出流,并发送给web服务器,对于每个AJP连接都有一个对应的Ajp13Generator对象。

 

Ajp13Parser有4个状态,分别是STATE_START、STATE_END、STATE_AJP13CHUNK_START、STATE_AJP13CHUNK。

 

STATE_START是初始化状态,如果Ajp13Parser是这个状态,则是空闲的。在调用Ajp13Parser的reset方法后,会恢复为这个状态。

 

STATE_END是结束状态,如果Ajp13Parser是这个状态,则代表已处理完一个请求。

转入情况1:如果输入流结束了并且是STATE_AJP13CHUNK_START或STATE_AJP13CHUNK状态时,会转为STATE_END状态。

转入情况2:如果是STATE_AJP13CHUNK_START或STATE_AJP13CHUNK状态,并且已经读入了一个请求的全部内容后,会转为STATE_END状态。

转入情况3:如果在处理一个HTTP请求时,这个HTTP请求没有内容信息时,则转入STATE_END状态。

转入情况4:如果是STATE_AJP13CHUNK_START状态,并且读取了一个空的body数据包后,转入STATE_END状态。

 

STATE_AJP13CHUNK_START是开始接收body数据状态。

转入情况1:如果在处理一个HTTP请求时,body的长度未知时,转入STATE_AJP13CHUNK_START状态。

转入情况2:如果在处理一个HTTP请求时,有body时,则转入STATE_AJP13CHUNK_START状态。

转入情况3:如果在STATE_AJP13CHUNK状态,并且读取到一个完整的body数据包时,则转入STATE_AJP13CHUNK_START状态。

 

STATE_AJP13CHUNK是正在读取body数据时的状态。

转入情况:在至少读取了body数据包头后,转入STATE_AJP13CHUNK状态。

 

jetty中的ajp实现好像有问题啊,body数据包头长度是4啊,jetty中为什么判断为6?需要排查

分享到:
评论

相关推荐

    jetty-ajp-6.1.6rc0.jar

    jetty-ajp-6.1.6rc0.jar

    Jetty中文手册

    配置Jetty中的AJP13 在JBoss中配置Jetty Remote Glassfish EJBs from Jetty Jetty and Spring EJB3 (Pitchfork) JBoss EJB3 ObjectWeb EasyBeans (aka JOnAS EJB3Container) 集群技术 JBoss Infinispan (from ...

    Jetty权威指南.pdf

    Jetty还可以与其他Web服务器(如Apache)配合使用,通过mod_proxy或AJP代理协议将请求转发给Jetty处理。 #### 九、虚拟主机 **9.1 虚拟主机的配置方法** Jetty支持在同一台物理服务器上托管多个虚拟主机。通过...

    jetty指导书

    Comet是一种实现实时双向通信的技术,Jetty也支持通过Continuations实现Comet功能。 #### 十五、Embedding Jetty **15.1 嵌入式使用** Jetty的轻量级和灵活性使其非常适合嵌入到其他Java应用中。通过调用Jetty...

    jetty指南书

    18. **嵌入Jetty**:展示了如何将Jetty直接集成到应用程序中,实现自定义的web服务。 19. **安全**:探讨了Jetty的安全配置,如身份验证和权限管理。 20. **FAQ**:提供了常见问题解答,帮助读者解决在使用Jetty...

    Jetty工作原理

    一旦Server启动,Jetty就能接受HTTP和AJP协议的请求,这使得它既可以作为独立的Servlet引擎,也可以与其他Web应用服务器集成。 总的来说,Jetty的工作原理体现在其灵活的Handler机制、精简的生命周期管理和高效的...

    jetty-9.2.9

    Jetty是Servlet 3.1规范的实现者,这意味着它支持异步Servlet、Servlet初始化参数、动态部署、过滤器链优化等功能。这使得开发者能够利用最新的Servlet技术来构建高性能的Web应用。 3. **WebSocket**: Jetty ...

    jetty 架构

    Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它被广泛应用于各种规模的Web应用程序中。本文将深入探讨Jetty的架构及其核心特性,帮助你理解其工作原理和优势。 首先,Jetty的核心设计理念是简洁和...

    how tomcat works和jetty-src和tomcat7-src

    同时,对比Tomcat和Jetty的实现,还可以启发对不同设计模式和最佳实践的思考。 【标签】"源码"和"工具"提示我们,此处关注的是源代码级别的理解和使用工具进行分析。对于源码,开发者可以通过阅读、调试和修改来...

    Servlet引擎:JBoss与Tomcat、Jetty协同工作

    JBoss与Tomcat或Jetty的集成通常通过AJP(Apache JServ Protocol)协议实现。AJP是一种专为提高性能而设计的协议,它允许前端Web服务器(如Apache)与后端应用服务器(如Tomcat、JBoss)之间进行高速通信。在集成...

    jetty实施手册

    手册的配置篇涵盖了JBOSS AJP connector、Apache、mod_proxy、Jetty以及dbcp等多个方面的配置细节,这些配置是确保系统正常运行的关键。 **3.1 JBOSS AJP connector配置** JBOSS AJP connector配置主要用于将...

    《Jetty6_指南书》

    - **AJP部署**: 介绍AJP协议及其在Jetty中的应用。 #### 九、虚拟主机配置 - **多站点支持**: 在单一Jetty实例中配置多个虚拟主机。 - **域名绑定**: 如何配置域名绑定,实现多个网站的访问。 #### 十、管理服务器...

    jetty使用文档

    19. **JEE服务器整合**:Jetty可与EJB容器配合,实现完整的Java EE功能。 20. **开发环境使用**:Jetty适合开发和调试,快速部署和更新应用。 21. **安全**:支持基本的安全控制,如SSL/TLS、访问控制、身份验证等...

    jetty web程序

    1. **INV_access.java**: 这可能是一个Java源代码文件,通常用于实现某种业务逻辑,可能是访问控制或权限管理。在Jetty环境中,这可能是一个Servlet或者过滤器,用于处理HTTP请求。 2. **yly_vipsql.txt**和**yly_...

    iis2tomcat:Internet信息服务(IIS)和Apache Tomcat之间的AJP连接器

    AJP实现是通用的,可以将IIS与任何AJP服务器(例如Jboss,Web方法,Jetty等)连接。通常,如何将IIS连接到Tomcat是一个首选问题,尽管BonCode连接器有很多优点与旧的ISAPI连接器: 无需ISAPI代码,IIS

    jboss_apache_jk2

    本文主要探讨了在Linux环境下如何将Apache 2.0与JBoss 3.2.x进行集成,具体而言是通过JK2(Java Connector)来实现Apache与嵌入式Servlet容器(如Tomcat或Jetty)之间的通信。这种集成方式可以显著提高Web应用的性能...

    Apache 使用指南与实现原理

    9. **动态内容支持**:除了PHP和Perl,Apache还支持Python、Ruby等其他脚本语言,以及Java的Tomcat和Jetty等应用服务器,通过mod_jk或mod_proxy_ajp模块进行集成。 10. **错误处理**:Apache允许自定义错误页面,以...

    几种常见的JavaEE Web容器集群技术比较

    但是,Tomcat原生并不支持高级的集群特性,如故障检测和自动故障转移,通常需要配合其他软件如Apache HTTP Server和mod_proxy_ajp模块来实现。 2. **Jetty集群**:Jetty是一个轻量级、高性能的Web服务器和Servlet...

    SageTV Plugins-开源

    Jetty 是一个轻量级的Web服务器,由jetty-6.1.19.jar、jetty-util-6.1.19.jar、jetty-starter.jar、jetty-ajp-6.1.19.jar、jetty-rewrite-handler-6.1.19.jar和jetty-sslengine-6.1.19.jar组成。Jetty负责处理SageTV...

    Tomcat面试题(相关面试问题整合)

    同时,排查并优化代码,减少内存消耗,使用内存分析工具进行诊断。 9. **Tomcat的安全配置有哪些要点?** 安全配置包括:限制匿名访问,设置强壮的用户认证,使用SSL/TLS加密通信,禁用不必要的服务和端口,定期打...

Global site tag (gtag.js) - Google Analytics