¿Obtener solicitud HEAD?

¿Obtener solicitud HEAD?

Me gustaría enviar la HTTP HEADsolicitud 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/nullpara evitar wgetescribir una respuesta HTTP en un archivo.

Respuesta3

No hay ninguna necesidad derizo.

Con Wget, agregar --spiderimplica que desea enviar una HEADsolicitud (a diferencia de GETo 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 HEADoperació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, HEADcontinuará para realizarlo GETen 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 GETsolicitud que se realiza contra el servidor. Si no hay ningún problema, sólo HEADse realiza una solicitud. Puede desactivar esta funcionalidad con la --triesopció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/

información relacionada