`
weifly
  • 浏览: 235408 次
  • 性别: 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源码分析.pdf

    Jetty源码分析.pdf

    通过Jetty实现文件上传下载的小工具

    NULL 博文链接:https://vista-rui.iteye.com/blog/1386427

    jetty实现websocket功能

    使用jetty实现websocket功能,jetty已经集成了websocket的标准方法。

    jetty内嵌实现

    jetty内嵌实现,手动启动 WEB服务,不用发布到服务器上就可以访问。

    jetty服务器性能调整过程分析

    jetty服务器性能调整过程分析jetty服务器性能调整过程分析jetty服务器性能调整过程分析jetty服务器性能调整过程分析

    jetty+maven webapp,http,https实现的简单demo

    jdk1.7 jetty9.2.13 maven3.3.3 很基础的例子,来自官网,写成了DEMO,更加方便学习。包括jetty作为Http 服务器和 Web 容器的基础实现。

    jetty相关的全部jar包

    jetty-security-9.4.8.v20171121.jar,jetty-io-9.4.8.v20171121.jar,jetty-continuation-9.4.8.v20171121.jar,jetty-client-9.4.8.v20171121.jar,jetty-jmx-9.4.8.v20171121.jar,jetty-plus-9.4.8.v20171121....

    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 ...

    用jetty8.0写的websocket实现的简单聊天程序

    用jetty8.0写的websocket实现的简单聊天程序,供大家一起共同分享学习。

    jetty嵌入Web编程多种实现方式案例

    jetty嵌入Web编程多种实现方式案例

    eclipse jetty插件run-jetty-run-1.3.3

    eclipse jetty插件,从...下载run-jetty-run.zip文件,解压后再编写个links文件丢到eclipse的dropins目录下即可,省去了使用eclipse update方式安装的麻烦。 link文件样例如: path=d:\\eclipse_plugins\\run-jetty-run

    jetty的http服务流程分析

    花了两天整理的jetty的源代码分析的草稿,初学jetty的可以下来看看,懂jetty的就不要看了

    Jetty多版本软件包

    Jetty软件包内容: jetty-distribution-9.4.51.v20230217.tar.gz jetty-distribution-9.4.51.v20230217.zip jetty-home-10.0.15.tar.gz jetty-home-10.0.15.zip jetty-home-11.0.15.tar.gz jetty-home-11.0.15.zip ...

    Jetty cometd(Continuation)学习笔记

    Jetty是一个纯Java实现的开源Servlet容器,Jetty也可以作为HTTP服务器和HTTP客户端,Jetty仪器轻巧,稳定和高性能而著称,完全可以胜任企业级Servlet容器的要求。Jetty允许Apache Licence 2.0或者Eclipse Public ...

    jetty6 指南书

    jetty是什么 jetty配置 jetty使用 jetty嵌入 jetty启动 jetty部署 jetty教程 jetty嵌入式 jetty

    jetty源码剖析

    jetty源码剖析,通过此文档可以了解Jetty的实现原理和阅读底层代码。

    jetty嵌入式服务器必须的jar包

    jetty嵌入式服务器开发所必须的jar包,本人使用jetty版本为6.1.3,jar包总数为9个,来自jetty:commons-el-1.0.jar,jasper-compiler-5.5.15,jasper-compiler-jdt-5.5.15.jar,jasper-runtime-5.5.15.jar,jetty-...

    jetty 8及依赖包

    jetty8以及依赖包,学习的好代码,包括NIO和servlet的实现等

    jetty-5.1.12

    另外 Jetty 设计了非常良好的接口,因此在 Jetty 的某种实现无法满足用户的需要时,用户可以非常方便地对 Jetty 的某些实现进行修改,使得 Jetty 适用于特殊的应用程序的需求。 易嵌入性  Jetty 设计之初就是作为...

Global site tag (gtag.js) - Google Analytics