Wget HEAD solicitud?

52

Me gustaría enviar la HTTP HEADsolicitud usando wget. ¿Es posible?

Xiè Jìléi
fuente

Respuestas:

59

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
Trineo
fuente
Esto es exactamente lo que quiero.
Xiè Jìléi
1
-Ies equivalente a --head.
Nicolas Marchildon
1
Si necesita un certificado autofirmado basado https, también puede agregar -ko--insecure
Mike Aski
36

Tratar:

wget -S --spider www.example.com

También puede pasar -O /dev/nullpara evitar wgetescribir una respuesta HTTP en un archivo.

Codificador casual
fuente
2
-Sse muestran los encabezados, pero se ejecuta una GET, no una HEAD. En otras palabras, obtendrá la URL completa.
Dan Dascalescu
99
wget -S --spider http://localhostel registro creado en el servidor Apache es127.0.0.1 - - [04/Mar/2014:15:36:32 +0100] "HEAD / HTTP/1.1" 200 314 "-" "Wget/1.13.4 (linux-gnu)"
Casual Coder
20

No hay necesidad de rizos .

Con Wget, agregar --spiderimplica que desea enviar una HEADsolicitud (a diferencia de GETo POST).

Esta es una excelente forma minimalista de verificar si una URL responde o no. Por ejemplo, puede usar esto en comprobaciones con guiones, y la HEADoperación se asegurará de que no ponga ninguna carga en la red ni en el servidor web de destino.

Información adicional: si Wget obtiene un error HTTP 500 del servidor cuando lo realiza HEAD, se moverá para realizar una GETcontra la misma URL. No sé el razonamiento de este diseño. Esta es la razón por la cual es posible que vea un tanto HEAD y una GETpetición que se realizan en el servidor. Si no pasa nada, solo HEADse realiza una solicitud. Puede deshabilitar esta funcionalidad con la --triesopción de limitar Wget a un solo intento.

En general, 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
esto es divertido
fuente
4

wget -S obtiene el archivo:

Longitud del contenido: 2316, Longitud: 2316 (2.3K) [text / plain], Guardar en: `index.html '

wget --spider obtiene encabezados:

Modo araña habilitado. Compruebe si existe un archivo remoto., Longitud: sin especificar [texto / plano] Existe un archivo remoto.

LanPartacz
fuente
-1

Aunque no wget, muchas perlinstalaciones con lwpmódulo tendrán un HEADcomando instalado.

Rich Homolka
fuente