Chinaunix

标题: [已解决]有熟悉AnyEvent::HTTP的朋友帮忙看一眼,503 Service Unavailable [打印本页]

作者: py    时间: 2012-04-25 18:42
标题: [已解决]有熟悉AnyEvent::HTTP的朋友帮忙看一眼,503 Service Unavailable
本帖最后由 py 于 2012-04-29 21:52 编辑

今天突然想试试on_header,on_body等功能,结果发现设置了on_header以后,频繁出现503.
如果我只是使用简单的形式,http_get 'http://www.amazon.cn/', sub {}就很少出问题,但加上了on_header就容易出现503

on_header中我也没有复杂的代码,只是检测一下Status,然后决定callback的返回值

另外我感觉www.amazon.cn好像也挺敏感的,今天下午有一段时间我试20次都不能成功访问一次,wget和curl出现同样问题,但lynx就工作正常。

我开始怀疑是没设置“User-Agent”出的问题,后来设置了$AnyEvent::HTTP::USERAGENT = 'Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0'也没用

而且wget也持续不能拿到www.amazon.cn的内容。


我的问题:
1. 同一个IP,我用firefox/IE/lynx这种浏览器访问www.amazon.cn 100%成功,但用AnyEvent::HTTP就有很大几率得到503.
即使是我设置了很多HTTP头信息也没用。这是为什么?我要怎么做才能让AnyEvent::HTTP的行为和浏览器一样?

2. 我能理解on_header的作用,但是on_body在什么情况下用呢?为什么不直接用completion callback?
作者: 兰花仙子    时间: 2012-04-25 19:04
有些网站用JS来检查浏览器,此时你需要google的V8引擎来忽悠它们。
作者: bikong0411    时间: 2012-04-25 19:25
等答案
作者: py    时间: 2012-04-25 20:23
兰花仙子 发表于 2012-04-25 19:04
有些网站用JS来检查浏览器,此时你需要google的V8引擎来忽悠它们。

可我在终端下用lynx怎么访问页面都没问题啊,我还设置了AnyEvent::HTTP接受cookie,但也不管用。
我甚至用firefox访问出问题的页面然后抓包,按照firefox浏览器的HTTP请求包头来设置AnyEvent::HTTP的包头,也不好使。我对HTTP协议不是很熟,是不是我还忽略了什么重要的环节?
作者: ttcn_cu    时间: 2012-04-25 21:45
你不能用wireshark抓个包嘛
作者: py    时间: 2012-04-25 21:48
回复 5# ttcn_cu

见4楼的帖子

我抓过包了。
   
作者: flw    时间: 2012-04-25 21:55
抓包,逐字节比对。
作者: ttcn_cu    时间: 2012-04-25 22:56
本帖最后由 ttcn_cu 于 2012-04-25 23:03 编辑

刚才测的不太严谨,用了200做过滤,再试了一次,发现有一次503出现,看来是亚马逊自己的问题

刚才用平板上网,没怎么看清。。。

503不大像是JS搞的鬼,要启动js至少要200以后

503是不是网络问题,或者你试的时候是高峰??我现在实验好多次wget一直是好的,你不在国内,最好实验当地的网站先。
  1. [root@192 ~]# date
  2. Wed Apr 25 22:54:49 CST 2012
  3. [root@192 ~]# while : ; do  wget  www.amazon.cn -O- 2>&1 | egrep -i 'response|<TITLE>';done
  4. HTTP request sent, awaiting response... 200 OK
  5. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  6. HTTP request sent, awaiting response... 200 OK
  7. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  8. HTTP request sent, awaiting response... 200 OK
  9. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  10. HTTP request sent, awaiting response... 200 OK
  11. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  12. HTTP request sent, awaiting response... 200 OK
  13. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  14. HTTP request sent, awaiting response... 200 OK
  15. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  16. HTTP request sent, awaiting response... 200 OK
  17. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  18. HTTP request sent, awaiting response... 200 OK
  19. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  20. HTTP request sent, awaiting response... 200 OK
  21. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  22. HTTP request sent, awaiting response... 200 OK
  23. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  24. HTTP request sent, awaiting response... 200 OK
  25. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  26. HTTP request sent, awaiting response... 200 OK
  27. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  28. HTTP request sent, awaiting response... 200 OK
  29. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  30. HTTP request sent, awaiting response... 200 OK
  31. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  32. HTTP request sent, awaiting response... 200 OK
  33. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  34. HTTP request sent, awaiting response... 200 OK
  35. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  36. HTTP request sent, awaiting response... 200 OK
  37. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  38. HTTP request sent, awaiting response... 200 OK
  39. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  40. HTTP request sent, awaiting response... 200 OK
  41. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  42. HTTP request sent, awaiting response... 200 OK
  43. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  44. HTTP request sent, awaiting response... 200 OK
  45. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  46. HTTP request sent, awaiting response... 200 OK
  47. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  48. HTTP request sent, awaiting response... 200 OK
  49. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  50. HTTP request sent, awaiting response... 200 OK
  51. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  52. HTTP request sent, awaiting response... 200 OK
  53. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  54. HTTP request sent, awaiting response... 200 OK
  55. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  56. HTTP request sent, awaiting response... 200 OK
  57. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  58. HTTP request sent, awaiting response... 200 OK
  59. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  60. HTTP request sent, awaiting response... 200 OK
  61. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  62. HTTP request sent, awaiting response... 200 OK
  63. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  64. HTTP request sent, awaiting response... 200 OK
  65. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  66. HTTP request sent, awaiting response... 200 OK
  67. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  68. HTTP request sent, awaiting response... 200 OK
  69. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  70. HTTP request sent, awaiting response... 200 OK
  71. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  72. HTTP request sent, awaiting response... 200 OK
  73. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  74. HTTP request sent, awaiting response... 200 OK
  75. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  76. HTTP request sent, awaiting response... 200 OK
  77. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  78. HTTP request sent, awaiting response... 200 OK
  79. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  80. HTTP request sent, awaiting response... 200 OK
  81. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  82. HTTP request sent, awaiting response... 200 OK
  83. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  84. HTTP request sent, awaiting response... 200 OK
  85. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  86. HTTP request sent, awaiting response... 200 OK
  87. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  88. HTTP request sent, awaiting response... 200 OK
  89. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  90. HTTP request sent, awaiting response... 200 OK
  91. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  92. HTTP request sent, awaiting response... 200 OK
  93. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  94. HTTP request sent, awaiting response... 200 OK
  95. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  96. HTTP request sent, awaiting response... 503 Service Temporarily Unavailable
  97. HTTP request sent, awaiting response... 200 OK
  98. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  99. HTTP request sent, awaiting response... 200 OK
  100. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  101. HTTP request sent, awaiting response... 200 OK
  102. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  103. HTTP request sent, awaiting response... 200 OK
  104. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  105. HTTP request sent, awaiting response... 200 OK
  106. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  107. HTTP request sent, awaiting response... 200 OK
  108. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  109. HTTP request sent, awaiting response... 200 OK
  110. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  111. HTTP request sent, awaiting response... 200 OK
  112. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  113. HTTP request sent, awaiting response... 200 OK
  114. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  115. HTTP request sent, awaiting response... 200 OK
  116. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  117. HTTP request sent, awaiting response... 200 OK
  118. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  119. HTTP request sent, awaiting response... 200 OK
  120. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  121. HTTP request sent, awaiting response... 200 OK
  122. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  123. HTTP request sent, awaiting response... 200 OK
  124. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  125. HTTP request sent, awaiting response... 200 OK
  126. <title>亚马逊 Z.cn:网上购物:图书,手机,数码,家电,化妆品,钟表,首饰,日用百货等在线销售</title>
  127. ^C
  128. [root@192 ~]# date
  129. Wed Apr 25 23:00:47 CST 2012
  130. [root@192 ~]#
复制代码

作者: ttcn_cu    时间: 2012-04-26 09:05
回复 9# py


    似乎亚马逊这个网站本身的负载不行吧,看样子似乎也没有用CDN。
你比比HTTP层以下的东西?HTTP似乎东西很少。
作者: py    时间: 2012-04-29 21:51
标题: RE: 有熟悉AnyEvent::HTTP的朋友帮忙看一眼,503 Service Unavailable
flw 发表于 2012-04-25 21:55
抓包,逐字节比对。


谢谢flw

周末花了些时间比对了一下IE/Firefox/lynx和LWP/AnyEvent::HTTP的包头,收获不小。完全一样的包头信息是不可能得到不同结果的。
作者: QQ1921961    时间: 2012-04-30 08:27
py 发表于 2012-04-29 21:51
谢谢flw

周末花了些时间比对了一下IE/Firefox/lynx和LWP/AnyEvent::HTTP的包头,收获不小。完全一样 ...




确定问题出在哪了?


$AnyEvent::HTTP::MAX_PER_HOST  值设小一点试下,
persistent 参数设为0 or 1 试下。


作者: py    时间: 2012-04-30 12:47
我仔细看了并试了AnyEvent::HTTP提供的每个参数。不是$AnyEvent::HTTP::MAX_PER_HOST的问题,因为我的测试代码不是多线程,就是简单get一个网页。
问题就如fly所说,详细比对HTTP包头所有属性,弄成一模一样的就好了。是“一模一样”。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2