Chinaunix首页 | 论坛 | 博客
  • 博客访问: 368071
  • 博文数量: 715
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5005
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:46
文章分类

全部博文(715)

文章存档

2011年(1)

2008年(714)

我的朋友

分类:

2008-10-13 16:30:32

除虫记之十四:一个空格

我们的产品在很早的版本中采用了全新的登陆模式,使用http协议解决了原来有些网络不能登陆的问题,相关代码可以说久经考验,除了本地防火墙阻拦外,我们还没有发现不能登陆的情况。

但前两天,客服告诉我,XXX新闻办公室的领导们使用IG不能登陆了。原来我们公司在那儿做一个项目,顺便向他们的大小头头们推荐了我们的产品,各个领导对我们的产品很感兴趣,尤其是新闻订阅,经常使用这个功能。但不知什么原因,突然不能登陆了。客服的部门经理在mail中强调了他们处于政府的要害部门,影响力不比一般,并且把mail抄送给了公司老总。老总批示从快处理。

切,怎么可能不能登陆呢?我们还没有遇到这样的网络环境呢。仔细询问,并且让他们和新闻办的技术人员做了沟通,第二天回复说,他们的网络做了改动,做了新的防火墙,他们说可能是这个原因,但他们也说了,有的能登陆。

想了想,部门内所有人的开发都很紧张,耽误不得,还是亲自去吧。

和那边做项目的部门经理做了沟通,打车过去。晕,真是不一般,第一次来这样的地,各种国家机器一应俱全。登记后,让里面的人接进去。

简单沟通后,了解到,他们的网络有两种环境,一个是境内线,一个境外线,其中境内线是可以登陆的,境外线在改防火墙前也是可以登陆的,改了防火墙后就不能登陆了。

在一个处长的工位上测试了一下,果然是不能登陆,看样子是登陆过程中http提交超时。把数据拷贝到IE地址栏里面,靠,竟然可以登陆。ft,哪儿出了问题?

肯定是我们代码中的http协议实现有地方不标准。

他们的境外线除了各人用的就会议室里有一个,刚好里面有人在开会,等他们开完会,进去配好网络。在带日志模式下运行登陆,肯定是超时报网络出错;启动Ethereal,然后用IE登陆,抓包。

比较两个http数据包,发现很多不同,我们代码中采用Post协议,只添了一些必要的字段,IE采用Get协议,所有该有的字段可能都有了。

这就好办了,只需逐个的添加就知道怎么回事了。才做了这些工作,陪着我的我们公司同事,一个相当漂亮的女孩告诉我去吃中午饭,她给我要了一份午餐。不错,去考察政府的大锅饭什么档次。

午饭一般,10元的餐票,2个菜几两米。

回来在代码中把其他没有的字段一个一个的添加、编译、测试,要晕了!一路折腾下来,竟然都不成功!哪儿出了问题?难道协议不对?

换成GET方法,哈,就听硬盘声音不一样了,啊哈,成功了!ft,难道只有GET才放行?

重又用POST方法测试了几种情况,皆不成功,遂武断的做了不支持POST方法的决定。

打道回府,和张义臣讨论这个结论。张说不可能,如果这样,很多网页都不能浏览的,比如mail等。

他简单写了一个form,用POST方法把我们的数据提交,让我再去那个环境下做一次测试。

唉,厉害呀,如果我对HTML熟悉的话,在那儿直接做这个测试好了,就不用再跑一趟了。可惜不熟悉!

决定第二天再去一次。

联系了那个美女,约好一同去XXX新闻办。

到了那儿,立刻做了测试,我靠,真的可以耶~~~~,用Ethernet抓包,POST方法,各个字段正常。

这好办了呀,再重新对比这个数据包,修改我们的代码,所有的字段挨个的比较、编译、运行。
ft,一路下来,还是不行。

比较数据,瞪的我眼睛直冒火!

把自己的包抓下来,和IE的包比较,发给张,帮我比较。
他指出了几处不同,修正了,还是不行。

要晕了!

直至最后,数据上已经完全一样了,连大小写都一样了,还是不行。
tnnd,到底出了啥问题了?

后来,又发现一处不同,在Content-Length字段后面,我们的包是直接添的长度93,而IE在冒号后面加了一个空格又添的长度93。

难道这也有问题??

修正,编译,运行!

真够日的,通了!!!!!!!!!!!

这防火墙真TMD变态!难道就差这个空格?

遂把代码恢复到最初状态,只修改这个空格。通了!

天哪,真的是只差这个空格!这够日的防火墙,这不是要人命嘛!

唏嘘感慨一番,检查代码中所有相关的POST协议,都严格的加了空格,连大小写都不敢马虎!

教训:有的防火墙是有点变态,不过代码如果绝对规范标准,也是应该的!

 


 


--------------------next---------------------

阅读(147) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~