【问题标题】:Is there a way to make a GET request without getting the body of the content?有没有办法在不获取内容主体的情况下发出 GET 请求?
【发布时间】:2010-09-09 06:37:20
【问题描述】:

我正在尝试执行 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

很麻烦,因为 HEAD 请求返回 200 OK,而 GET 请求返回预期的 302 状态代码。

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

更新:采纳大卫的建议做一个 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>

【问题讨论】:

  • 看起来网络服务器(在本例中为 Google 新闻)设置为在出现 HEAD 请求时发回 200 状态代码。这不是标准实现,HEAD 请求也应该返回 302 状态代码。由于这是他们的一个错误,我看不出有什么可以解决的

标签: html http protocols network-protocols


【解决方案1】:
  1. 向网络服务器的所有者提交错误。

  2. 尝试在您的请求中使用 Range 标头。

  3. 如果这样不行,你可以在得到你想要的标头后挂断连接吗?

【讨论】:

  • 感谢大卫,不知道 Range 标头。我现在正在发送它,但他们仍然忽略它,除非我没有正确指定它。我已经用结果更新了我的帖子。
  • 我猜这只是一个廉价的网络服务。试试把插座挂起来?无论 HTTP 状态如何,您也可以只使用 Location 标头。
  • 不幸的是,他们没有发回位置标头。
【解决方案2】:

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

【讨论】:

  • 仅适用于该示例,我目前正在处理数百万个随机网址
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 2013-10-24
  • 2015-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-05
相关资源
最近更新 更多