web-dev-qa-db-fra.com

Wget HEAD demande?

J'aimerais envoyer la demande HTTP HEAD en utilisant wget. C'est possible?

52
Xiè Jìléi

Ce n'est pas wget, mais vous pouvez le faire assez facilement en utilisant curl.

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

Produit cette sortie:

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
59
SleighBoy

Essayer:

wget -S --spider www.example.com

Vous pouvez également passer -O /dev/null pour empêcher wget d'écrire une réponse HTTP dans un fichier.

35
Casual Coder

Il n'y a aucun besoin de curl .

Avec Wget, l'ajout de --spider implique que vous souhaitiez envoyer une demande HEAD (par opposition à GET ou POST).

C'est une excellente façon minimaliste de vérifier si une URL répond ou non. Vous pouvez par exemple utiliser ceci dans des contrôles par script, et l'opération HEAD veillera à ce que vous ne fassiez aucune charge sur le réseau ni sur le serveur Web cible.

Informations sur le bonus: Si Wget obtient une erreur HTTP 500 du serveur lorsqu’il exécute HEAD, il passera ensuite à exécuter une GET avec la même URL. Je ne connais pas le raisonnement pour cette conception. C'est la raison pour laquelle une requête HEAD et GET est exécutée sur le serveur. Si rien ne va pas, seule une requête HEAD est effectuée. Vous pouvez désactiver cette fonctionnalité avec l'option --tries pour limiter Wget à une seule tentative.

En tout et pour tout, je le recommande pour tester si une URL répond:

# 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
19
thisisfun

wget -S récupère le fichier:

Content-Length: 2316, Length: 2316 (2.3K) [text/plain], Enregistrement dans: `index.html '

wget --spider obtient les en-têtes:

Mode Spider activé. Vérifier si le fichier distant existe., Longueur: non spécifié [text/plain] Le fichier distant existe.

4
LanPartacz