Wget solicitação HEAD?

Wget solicitação HEAD?

Gostaria de enviar a HTTP HEADsolicitaçã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/nullpara impedir wgeta gravação de resposta HTTP em um arquivo.

Responder3

Não há nenhuma necessidadeondulação.

Com o Wget, adicionar --spiderimplica que você deseja enviar uma HEADsolicitação (em oposição a GETou 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 HEADoperaçã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, HEADele prosseguirá para executar GETo mesmo URL. Não sei o raciocínio desse design. Esta é a razão pela qual você pode ver tanto umHEAD euma GETsolicitação sendo executada no servidor. Se nada estiver errado, apenas uma HEADsolicitação será executada. Você pode desabilitar esta funcionalidade com a --triesopçã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/

informação relacionada