Não há necessidade de curl .
Com o Wget, adicionar --spider
significa que você deseja enviar uma solicitação HEAD
(em oposição a GET
ou POST
).
Esta é uma ótima maneira minimalista de verificar se uma URL responde ou não. Você pode, por exemplo, usar isso em verificações com script, e a operação HEAD
fará com que você não coloque nenhuma carga nem na rede nem no servidor web de destino.
Informação do bônus: Se o Wget receber um erro HTTP 500 do servidor quando ele executar o HEAD
, ele passará a executar um GET
no mesmo URL. Eu não sei o motivo desse design. Esta é a razão pela qual você pode ver uma solicitação HEAD
e a GET
sendo executada no servidor. Se nada estiver errado, apenas uma solicitação HEAD
será executada. Você pode desativar essa funcionalidade com a opção --tries
para limitar o Wget a apenas uma tentativa.
Em suma, recomendo isso para testar se uma URL está respondendo:
# 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