Eu gostaria de enviar a HTTP HEAD
solicitação usando wget
. É possível?
52
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
-I
é equivalente a--head
.https
, também poderá adicionar-k
ou--insecure
Experimentar:
Você também pode passar
-O /dev/null
para impedir awget
gravação de resposta HTTP em um arquivo.fonte
-S
vai mostrar cabeçalhos, mas executa umGET
, não umHEAD
. Em outras palavras, ele buscará o URL inteiro.wget -S --spider http://localhost
log criado em apache servidor é127.0.0.1 - - [04/Mar/2014:15:36:32 +0100] "HEAD / HTTP/1.1" 200 314 "-" "Wget/1.13.4 (linux-gnu)"
Não há necessidade de enrolar .
Com o Wget, adicionar
--spider
implica que você deseja enviar umaHEAD
solicitação (ao contrário deGET
ouPOST
).Essa é uma ótima maneira minimalista de verificar se um URL responde ou não. Você pode, por exemplo, usar isso em verificações com script, e a
HEAD
operação garantirá que você não carregue carga na rede nem no servidor da web de destino.Informações sobre bônus: Se o Wget receber um erro HTTP 500 do servidor
HEAD
ao executá-lo, ele passará a executar umGET
contra o mesmo URL. Não sei o motivo desse design. Essa é a razão pela qual você pode ver a solicitaçãoHEAD
e aGET
sendo executadas no servidor. Se nada estiver errado, apenas umaHEAD
solicitação será executada. Você pode desativar essa funcionalidade com a--tries
opção de limitar o Wget a apenas uma tentativa.Em suma, recomendo isso para testar se um URL está respondendo:
fonte
wget -S
obtém o arquivo:wget --spider
obtém cabeçalhos:fonte
Embora não
wget
, muitasperl
instalações com olwp
módulo terão umHEAD
comando instalado.fonte