Ich möchte die HTTP HEAD
Anfrage per senden wget
. Ist das möglich?
Antwort1
Es ist nicht wget, aber Sie können das ganz einfach mit curl tun.
curl -I http://www.superuser.com/
Erzeugt diese Ausgabe:
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
Antwort2
Versuchen:
wget -S --spider www.example.com
Sie können auch -O /dev/null
verhindern, wget
dass die HTTP-Antwort in eine Datei geschrieben wird.
Antwort3
Es besteht keine Notwendigkeit fürLocke.
Bei Wget --spider
impliziert das Hinzufügen, dass Sie eine Anfrage senden möchten HEAD
(im Gegensatz zu GET
oder POST
).
Dies ist eine großartige minimalistische Methode, um zu prüfen, ob eine URL antwortet oder nicht. Sie können dies beispielsweise in Skriptprüfungen verwenden, und der HEAD
Vorgang stellt sicher, dass weder das Netzwerk noch der Zielwebserver belastet werden.
Bonusinformationen: Wenn Wget beim Ausführen des einen HTTP-Fehler 500 vom Server erhält, führt es einen für dieselbe URL HEAD
aus . Ich kenne den Grund für dieses Design nicht. Aus diesem Grund sehen Sie möglicherweise sowohl einenGET
HEAD
Undeine GET
Anfrage, die an den Server gestellt wird. Wenn alles in Ordnung ist, HEAD
wird nur eine Anfrage gestellt. Sie können diese Funktion deaktivieren, indem --tries
Sie Wget auf einen einzigen Versuch beschränken.
Alles in allem empfehle ich Folgendes zum Testen, ob eine URL antwortet:
# 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
Antwort4
--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.
Habe Folgendes in meinem Bash-Skript verwendet und kann bestätigen, dass es wie erwartet funktioniert!
wget --method=HEAD https://www.website.com/