Answers:
这不是wget,但是您可以使用curl轻松地做到这一点。
curl -I http://www.superuser.com/
产生以下输出:
HTTP/1.1 301 Moved Permanently
Content-Length: 144
Content-Type: text/html; charset=UTF-8
Location: http://superuser.com/
Date: Sat, 09 Oct 2010 19:11:50 GMT
-I
等同于--head
。
https
,则还可以添加-k
或--insecure
尝试:
wget -S --spider www.example.com
您还可以通过-O /dev/null
阻止wget
将HTTP响应写入文件。
-S
将显示标题,但将执行GET
,而不是HEAD
。换句话说,它将获取整个URL。
wget -S --spider http://localhost
apache服务器中创建的日志是127.0.0.1 - - [04/Mar/2014:15:36:32 +0100] "HEAD / HTTP/1.1" 200 314 "-" "Wget/1.13.4 (linux-gnu)"
不需要卷曲。
使用Wget,添加--spider
意味着您要发送一个HEAD
请求(与GET
或相对POST
)。
这是一种检查URL是否响应的极简方法。例如,您可以在脚本检查中使用此功能,并且该HEAD
操作将确保您既不对网络也没有对目标Web服务器施加任何负载。
奖励信息:如果Wget在执行时从服务器收到HTTP错误500,HEAD
它将继续对GET
相同的URL 执行。我不知道这种设计的原因。这就是为什么您可能同时看到a HEAD
和GET
针对服务器执行的请求的原因。如果没有错误,则仅HEAD
执行请求。您可以通过--tries
选择将Wget限制为仅一次尝试来禁用此功能。
总而言之,我建议使用此工具来测试URL是否响应:
# This works in Bash and derivatives
wget_output=$(wget --spider --tries 1 $URL 2>&1)
wget_exit_code=$?
if [ $wget_exit_code -ne 0 ]; then
# Something went wrong
echo "$URL is not responding"
echo "Output from wget: "
echo "$wget_output"
else
echo "Check succeeded: $URL is responding"
fi
wget -S
获取文件:
内容长度:2316,长度:2316(2.3K)[text / plain],保存到:`index.html'
wget --spider
获取标题:
启用蜘蛛模式。检查是否存在远程文件。,长度:未指定[文本/纯文本]远程文件存在。