69 votes

Demande de Wget HEAD ?

J'aimerais envoyer le HTTP HEAD demander à utiliser wget . Est-ce possible ?

67voto

saci Points 41

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

48voto

Casual Coder Points 3862

Essayez :

wget -S --spider www.example.com

Vous pouvez également passer -O /dev/null pour éviter wget d'écrire la réponse HTTP dans un fichier.

25voto

AmalZ Points 1

Il n'y a pas besoin de bouclette .

Avec Wget, en ajoutant --spider implique que vous voulez envoyer un HEAD (par opposition à GET ou POST ).

Il s'agit d'un excellent moyen minimaliste de vérifier si une URL répond ou non. Vous pouvez par exemple l'utiliser dans des contrôles scriptés, et la fonction HEAD Cette opération permet de s'assurer que vous n'imposez aucune charge au réseau ou au serveur Web cible.

Informations complémentaires : Si Wget obtient une erreur HTTP 500 du serveur lorsqu'il exécute l'opération suivante HEAD il passera ensuite à l'exécution d'une GET contre la même URL. Je ne connais pas le raisonnement qui sous-tend cette conception. C'est la raison pour laquelle vous pouvez voir à la fois un fichier de type HEAD y a GET en cours d'exécution sur le serveur. Si tout va bien, seul un HEAD est effectuée. Vous pouvez désactiver cette fonctionnalité avec l'option --tries pour limiter Wget à une seule tentative.

Dans l'ensemble, je recommande cette méthode 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

4voto

LanPartacz Points 41

wget -S obtient le fichier :

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

wget --spider reçoit des en-têtes :

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

3voto

phbits Points 121

Page de manuel 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.

J'ai utilisé ce qui suit dans mon bash script et je peux confirmer que cela fonctionne comme prévu !

wget --method=HEAD https://www.website.com/

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X