如何在Windows命令行中执行HTTP HEAD请求?

14

在Windows(Vista)命令行中,获取远程Web服务器上文件的大小和修改时间的最佳方法(或工具)是什么,而不必下载该文件?

5个回答

11

有一个Win32版的wget可以正常使用。

PowerShell的Invoke-WebRequest -Method Head也可以使用。


10

如果您无法安装其他应用程序,那么您可以使用telnet(您需要按照此链接为Windows 7安装此功能)连接远程服务器:

TELNET server_name 80

接着是:

HEAD /virtual/directory/file.ext
或。
GET /virtual/directory/file.ext

根据您想要获取的内容是仅标题(HEAD)还是完整内容(GET)而定


这对于https有效吗?我尝试了443端口,但没有成功。 - theannouncer

9
在Linux中,我经常使用带有--head参数的curl。它适用于多个操作系统,包括Windows。
[编辑]与下面的答案相关,截至2012年2月23日,gknw.net目前已经关闭。请查看curl.haxx.se以获取更新信息。

1
谢谢!http://www.gknw.net/mirror/curl/win32/curl-7.19.0-ssl-sspi-zlib-static-bin-w32.zip 这个链接提供了一个静态链接版本的 Win32 ,比 wget 表现还好。 - Henning

5

1)查看GET请求返回的头部信息

wget --server-response -O /dev/null http://....

1a) 保存从GET请求返回的头部信息。

wget --server-response -o headers -O /dev/null http://....

2) 查看GET HEAD请求返回的标题信息

wget --server-response --spider http://....

2a) 保存从GET HEAD请求返回的标头

wget --server-response --spider -o headers http://....
  • 大卫

(a) Windows系统中没有/dev/null。 (b) 我不确定为什么你包括前两个选项,因为他们说他们想发出HEAD请求,而不是GET。为什么要下载永远不会使用的东西,特别是如果它可能很大。 - Joey

1
我会下载PuTTY并在端口80上运行telnet会话,以连接您想要的Web服务器。
HEAD /resource HTTP/1.1
Host: www.example.com

你可以选择下载Perl并尝试使用LWP的HEAD命令。或者编写自己的脚本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接