2010-09-08 153 views
0

我试图做HEAD请求按照302页的链接,但此链接:http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNGrJk-F7Dmshmtze2yhifxRsv8sRg&url=http://www.mtv.com/news/articles/1647243/20100907/story.jhtml有没有办法让GET请求没有得到内容的正文?

是麻烦,因为一个HEAD请求返回一个200 OK和一个GET请求返回预期的302状态码。

所以我需要做一个GET请求,但我宁愿不必为获取整个HTML文档而来的额外带宽时间付费。任何人都知道在没有得到身体返回的情况下进行GET的攻击?

UPDATE:便将大卫建议做一个Range头,但他们似乎仍然可以忽略它

GET /news/url?sa=t&fd=R&usg=AFQjCNGrJk-F7Dmshmtze2yhifxRsv8sRg&url=http://www.mtv.com/news/articles/1647243/20100907/story.jhtml HTTP/1.1 
Range: bytes=0-10 
x-ms-range: 0-600 
Host: news.google.com 
Connection: Keep-Alive 
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) 

HTTP/1.1 302 Moved Temporarily 
Content-Type: text/html; charset=UTF-8 
Location: http://www.mtv.com/news/articles/1647243/20100907/story.jhtml 
Content-Length: 258 
Date: Wed, 08 Sep 2010 20:28:16 GMT 
Expires: Wed, 08 Sep 2010 20:28:16 GMT 
Cache-Control: private, max-age=0 
X-Content-Type-Options: nosniff 
X-Frame-Options: SAMEORIGIN 
X-XSS-Protection: 1; mode=block 
Server: GSE 
Set-Cookie: PREF=ID=ef5f1bc768645c5e:TM=1283977696:LM=1283977696:S=5n26IrEDpcQTJIb1; expires=Fri, 07-Sep-2012 20:28:16 GMT; path=/; domain=.google.com 

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> 
<TITLE>302 Moved</TITLE></HEAD><BODY> 
<H1>302 Moved</H1> 
The document has moved 
<A HREF="http://www.mtv.com/news/articles/1647243/20100907/story.jhtml">here</A>. 
</BODY></HTML> 
+2

它看起来像Web服务器(在这种情况下,Google新闻)设置为在发出HEAD请求时发回200状态代码。这不是标准实现,HEAD请求也应该返回302状态码。由于这是一个错误,所以我没有看到有什么可以做的。 – Asaf 2010-09-08 20:20:07

回答

0

1)文件与Web服务器的所有者的错误。

2)尝试在您的请求中使用Range标题。

3)如果这不起作用,你可以在得到你想要的标题后挂断连接吗?

+0

感谢David,不知道Range标题。我现在发送这个消息,但他们仍然忽略它,除非我没有正确具体说明。我已经用结果更新了我的帖子。 – James 2010-09-08 20:29:23

+0

我想这只是一个便宜的网络服务。试着挂上插座?无论HTTP状态如何,您都可以使用Location标头。 – 2010-09-08 20:33:03

+0

的头部请求,他们不送回位置标题,不幸的是。 – James 2010-09-08 20:43:27

0

在您引用的特定示例中,您可以将其从原始URL的“url”参数中拉出。但是对于更通用的方法,我会坚持David M.的建议

+0

只适用于这一个例子,我目前正在处理数以百万计的随机网址 – James 2010-09-09 02:17:28

相关问题