加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl http :: proxy – 转储所有通信

发布时间:2020-12-16 06:14:41 所属栏目:大数据 来源:网络整理
导读:有一个非常复杂的结构和 javascript逻辑与许多ajax调用的网页,一些请求只有一个响应纯(applicaton / json)对象,一些ajax获取HTML等等…;( 需要分析浏览器和服务器之间的完整通信,因此决定编写一个perl-proxy“简单”转储任何方向的所有文本通信(请求和响应).
有一个非常复杂的结构和 javascript逻辑与许多ajax调用的网页,一些请求只有一个响应纯(applicaton / json)对象,一些ajax获取HTML等等…;(

需要分析浏览器和服务器之间的完整通信,因此决定编写一个perl-proxy“简单”转储任何方向的所有文本通信(请求和响应).

找到HTTP::Proxy模块,但我完全混淆了过滤器.

基本代码:

use strict;
use warnings;
use HTTP::Proxy;

my $proxy = HTTP::Proxy->new( port => 3128 );
$proxy->start;

很好地工作,但我不知道如何为它编写过滤器.

分发中的“eg”目录有许多复杂的例子,如何修改响应主体内容等等,但基本的dump_all_communication丢失了.

任何人都可以指导我,如何编写一个简单的过滤器:

>转出从浏览器到服务器的所有http请求
>并且当他们有mime:text / *和application / json和application / x-javascript(或者更好:除了没有图像,pdf和flash之外的任何东西)时,转出所有回复的内容

Here is similiar question,但它想要过滤JSON,我想要更简单 – 转储所有内容(所有请求和所有响应(但没有图像))

解决方法

基于一个例子,我会这样做.它只是向stderr打印出在此代理中经历的所有内容.

相应地调整过滤器.

问候,

{
    package DumpAllBody;
    use base qw( HTTP::Proxy::BodyFilter );
    use Data::Dumper;
    sub filter {
        my ( $self,$dataref,$message,$protocol,$buffer ) = @_;
        warn "Body:n".Dumper($dataref,$buffer);
    }
}
{
    package DumpAllHeader;
    use base qw( HTTP::Proxy::HeaderFilter );
    use Data::Dumper; 
    sub filter {
        my ( $self,$headers,$message ) = @_;

        warn "Body:n".Dumper($headers,$message);
    }
}
$proxy->push_filter( request  => DumpAllHeader->new(),response => DumpAllHeader->new());
$proxy->push_filter( request  => DumpAllBody->new(),response => DumpAllBody->new());

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读