Wget richiesta HEAD?


52

Vorrei inviare la HTTP HEADrichiesta tramite wget. È possibile?

Risposte:


59

Non è wget, ma puoi farlo abbastanza facilmente usando il ricciolo.

curl -I http://www.superuser.com/

Produce questo output:

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

Questo è esattamente quello che voglio.
Xiè Jìléi,

1
-Iè equivalente a --head.
Nicolas Marchildon,

1
Se hai bisogno di un certificato autofirmato https, puoi anche aggiungere -ko--insecure
Mike Aski il

36

Provare:

wget -S --spider www.example.com

Puoi anche passare -O /dev/nullper impedire la wgetscrittura della risposta HTTP in un file.


2
-Svi mostrerà le intestazioni, ma si esegue una GET, non una HEAD. In altre parole, recupererà l'intero URL.
Dan Dascalescu,

9
wget -S --spider http://localhostil log creato nel server apache è127.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

Non è necessario arricciare .

Con Wget, l'aggiunta --spiderimplica che si desidera inviare una HEADrichiesta (al contrario di GETo POST).

Questo è un ottimo modo minimalista per verificare se un URL risponde o meno. Ad esempio, è possibile utilizzarlo nei controlli con script e l' HEADoperazione farà in modo di non caricare alcun carico né sulla rete né sul server web di destinazione.

Informazioni sul bonus: se Wget riceve un errore HTTP 500 dal server quando lo esegue HEAD, passerà a eseguire uno GETcontro lo stesso URL. Non conosco il ragionamento per questo disegno. Questo è il motivo per cui potresti vedere sia una HEAD che una GETrichiesta in esecuzione sul server. Se nulla è sbagliato, HEADviene eseguita solo una richiesta. Puoi disabilitare questa funzionalità con l' --triesopzione per limitare Wget a un solo tentativo.

Tutto sommato, lo consiglio per i test se un URL risponde:

# 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

4

wget -S ottiene il file:

Content-Length: 2316, Lunghezza: 2316 (2.3K) [testo / semplice], Salvataggio in: `index.html '

wget --spider ottiene le intestazioni:

Modalità Spider abilitata. Controlla se esiste un file remoto., Lunghezza: non specificato [testo / semplice] Esiste un file remoto.


-1

Anche se no wget, molte perlinstallazioni con lwpmodulo avranno un HEADcomando installato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.