Me gustaría enviar la HTTP HEAD
solicitud usando wget
. ¿Es posible?
Respuesta1
No es wget, pero puedes hacerlo fácilmente usando curl.
curl -I http://www.superuser.com/
Produce esta salida:
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
Respuesta2
Intentar:
wget -S --spider www.example.com
También puede pasar -O /dev/null
para evitar wget
escribir una respuesta HTTP en un archivo.
Respuesta3
No hay ninguna necesidad derizo.
Con Wget, agregar --spider
implica que desea enviar una HEAD
solicitud (a diferencia de GET
o POST
).
Esta es una excelente forma minimalista de comprobar si una URL responde o no. Puede, por ejemplo, utilizar esto en comprobaciones programadas y la HEAD
operación garantizará que no cargue ni la red ni el servidor web de destino.
Información adicional: si Wget recibe un error HTTP 500 del servidor cuando realiza el proceso, HEAD
continuará para realizarlo GET
en la misma URL. No sé el razonamiento de este diseño. Ésta es la razón por la que es posible que vea tanto unHEAD
yuna GET
solicitud que se realiza contra el servidor. Si no hay ningún problema, sólo HEAD
se realiza una solicitud. Puede desactivar esta funcionalidad con la --tries
opción de limitar Wget a un solo intento.
Considerándolo todo, recomiendo esto para probar si una URL responde:
# 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
Respuesta4
Página de manual de 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.
¡Utilicé lo siguiente en mi script bash y puedo confirmar que funciona como se esperaba!
wget --method=HEAD https://www.website.com/