Apache中的AJP协议

AJP 协议是定向包(面向包)协议,采用二进制形式代替文本形式,以提高性能。Web Server一般维持和Web Container的多个TCP Connecions,即TCP连接池,多个request/respons循环重用同一个Connection。但是当Connection被分配(Assigned)到某个请求时,该请求完成之前,其他请求不得使用该连接。

Tcp Connection 具有两种状态:

(1). Idle(空闲)
没有请求正使用该连接。
(2). Assigned(已分派)
当前连接正在处理某个请求.
一旦一个连接被分配给一个特定的请求,在连接上发送的基本请求信息是高度压缩的。在这点, SERVLET 容器大概准备开始处理请求,当它处理的时候,它能发回下面的信息给 WEB服务器


SEND_HEADERS

发送一组头到浏览器。

SEND_BODY_CHUNK

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

GET_BODY_CHUNK

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

END_RESPONSE

结束请求处理循环。

数据类型:

AJP协议中包括四种数据类型:Byte, Boolean, Integer and String.

Byte: 一个字节

Boolean: 一个字节,1 = true, 0 = false

Integer:两个字节,无符号整数,高位字节在前。

String:可变字符串,最大长度为2^16. 字符串的前而会有二个字节(Integer型)表示字符串的长度,-1表示null。字符串后面会跟上终结符”\0”,而且字符串长度不包括这个终结符。



更多的请求跳转中的抓包例子 可以看:http://guojuanjun.blog.51cto.com/277646/688559/




  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值