2008-12-20 68 views
1

我试图调试一些非常挑选/复杂的Web服务的问题,其中一些理论上提出相同请求的客户端获得不同的结果。像查尔斯这样的调试代理可以提供很多帮助,但由于请求很复杂(大量的头文件,cookie,查询字符串,表单数据等),客户端以不同的顺序创建头文件(这应该是完全可以接受的)等等。手工完成非常繁琐的过程。有什么工具可以区分HTTP请求/响应吗?

我在想写点东西来做这个,但我希望别人已经解决了这个问题?

顺便说一下,有谁知道任何查尔斯式的调试代理完全开源吗?如果Charles是开源的,我肯定会把我在这个前面做的任何工作贡献给这个项目。如果有类似的东西,我宁愿这样做,而不是从头开始编写一个单独的程序(特别是因为我想查尔斯或任何模拟器已经拥有了我可能需要的所有数据结构等等)。

编辑: 只是要清楚 - 文本差异将不起作用,因为行的顺序(例如至少是标题)可能不同,和/或行内值的顺序(例如至少cookie)可能不同并且在两种情况下,只要名称和值和元数据都相同,不同的排序不应导致其他方式相同的请求被视为不同。

回答

0

如果没有为作业构建任何目的,您可以使用数据包捕获功能将消息内容保存到文本文件(将其本身插入到IP堆栈中,例如CommView)。您可以对不同的消息进行文本分析。

+0

我已经有查尔斯文本的结果,但文本差异不起作用,因为,正如我所提到的,不同的客户端以不同的顺序发送不同的头文件(这不应该影响响应,因此也不应该影响等价)。 – John 2008-12-20 06:43:42

+0

此外,除了逐行更改标题的顺序以外,单个标题中的某些数据(例如,Cookie名称/值对)可以按不同顺序发送,但仍应视为等效。 – John 2008-12-20 06:45:06

0

开源代理Squid可能有帮助吗?

1

Fiddler有这样一个选项,如果你有WinDiff在你的路径。我不知道它是否会满足您的需求,因为乍一看,这是对文本进行比较的理由。但也许它在这之前使会话正常化,所以我不能说。