Méthode de requête HEAD
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since juillet 2015.
La méthode HTTP HEAD
demande les métadonnées d'une ressource sous la forme des en-têtes que le serveur aurait envoyés si la méthode GET
avait été utilisée.
Cette méthode peut être utilisée dans les cas où une URL pourrait produire un téléchargement volumineux : par exemple, une requête HEAD
permet de lire l'en-tête Content-Length
pour vérifier la taille du fichier avant de le télécharger avec une requête GET
.
Si la réponse à une requête HEAD
indique qu'une URL en cache est désormais obsolète, la copie en cache est invalidée même si aucune requête GET
n'a été effectuée.
Attention :
Si une réponse à une requête HEAD
contient un corps, celui-ci doit être ignoré.
Tout en-tête de représentation qui décrit ce corps erroné est supposé décrire le corps de la réponse qu'une requête GET
aurait reçu.
La requête a un corps | Non |
---|---|
La réponse de succès a un corps | Non |
Sûre | Oui |
Idempotente | Oui |
Mis en cache | Oui |
Autorisée dans les formulaires HTML | Non |
Syntaxe
HEAD <request-target>["?"<query>] HTTP/1.1
<request-target>
-
Identifie la ressource cible de la requête lorsqu'elle est combinée avec l'information fournie par l'en-tête
Host
. Il s'agit d'un chemin absolu (par exemple/chemin/vers/fichier.html
) pour les requêtes vers un serveur d'origine et d'une URL absolue pour les requêtes vers les serveurs mandataires (proxies) (par exemplehttp://www.exemple.fr/chemin/vers/fichier.html
). <query>
Facultatif-
Un fragment de requête optionnel précédé d'un point d'interrogation
?
. Utilisé généralement pour fournir de l'information sous la forme de pairesclé=valeur
.
Exemples
>Récupération réussie des métadonnées d'une ressource
La commande curl
suivante crée une requête HEAD
pour exemple.fr
:
curl --head exemple.fr
C'est l'équivalent d'une requête GET
, sauf que le serveur ne doit pas inclure de corps de message dans la réponse.
Cela crée une requête HTTP qui ressemble à :
HEAD / HTTP/1.1
Host: exemple.fr
User-Agent: curl/8.6.0
Accept: */*
Le serveur renvoie une réponse 200 OK
composée uniquement d'en-têtes.
La réponse contient donc les métadonnées qui décrivent la ressource, et non la ressource elle-même (certains en-têtes de cache sont omis dans cet exemple pour plus de clarté) :
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Date: Wed, 04 Sep 2024 10:33:11 GMT
Content-Length: 1234567
Spécifications
Specification |
---|
HTTP Semantics> # HEAD> |
Compatibilité des navigateurs
Loading…