Gostaria de enviar a HTTP HEAD
solicitação usando wget
. É possível?
Responder1
Não é wget, mas você pode fazer isso facilmente usando curl.
curl -I http://www.superuser.com/
Produz esta saída:
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
Responder2
Tentar:
wget -S --spider www.example.com
Você também pode passar -O /dev/null
para impedir wget
a gravação de resposta HTTP em um arquivo.
Responder3
Não há nenhuma necessidadeondulação.
Com o Wget, adicionar --spider
implica que você deseja enviar uma HEAD
solicitação (em oposição a GET
ou POST
).
Esta é uma ótima maneira minimalista de verificar se um URL responde ou não. Você pode, por exemplo, usar isso em verificações de script, e a HEAD
operação garantirá que você não coloque nenhuma carga na rede nem no servidor web de destino.
Informações bônus: se o Wget receber um erro HTTP 500 do servidor ao executar o, HEAD
ele prosseguirá para executar GET
o mesmo URL. Não sei o raciocínio desse design. Esta é a razão pela qual você pode ver tanto umHEAD
euma GET
solicitação sendo executada no servidor. Se nada estiver errado, apenas uma HEAD
solicitação será executada. Você pode desabilitar esta funcionalidade com a --tries
opção de limitar o Wget a apenas uma tentativa.
Resumindo, recomendo isto para testar se um 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
Responder4
Página de manual do Ubuntu 19.10: Wget
--method=HTTP-Method
For the purpose of RESTful scripting, Wget allows sending of other HTTP Methods
without the need to explicitly set them using --header=Header-Line. Wget will use
whatever string is passed to it after --method as the HTTP Method to the server.
Usei o seguinte em meu script bash e posso confirmar que funciona conforme o esperado!
wget --method=HEAD https://www.website.com/