Méthode de requête PUT
La méthode HTTP PUT crée une nouvelle ressource ou remplace la représentation de la ressource cible par le contenu de la requête.
La différence entre PUT et POST est que PUT est idempotente : l'appeler une fois ou plusieurs fois successivement ne change rien (il n'y a pas d'effets secondaires).
| La requête a un corps | Oui |
|---|---|
| La réponse de succès a un corps | Non |
| Sûre | Non |
| Idempotente | Oui |
| Mis en cache | Non |
| Autorisée dans les formulaires HTML | Non |
Syntaxe
PUT <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 dans l'en-tête
Host. Il s'agit d'un chemin absolu (par exemple/chemin/vers/fichier.html) dans les requêtes vers un serveur d'origine, et d'une URL absolue dans 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
?. Souvent utilisé pour transmettre des informations sous la forme de pairesclé=valeur.
Exemple
>Création réussie d'une ressource
La requête PUT suivante demande la création d'une ressource à l'adresse exemple.fr/nouveau.html avec le contenu <p>Nouveau fichier</p> :
PUT /nouveau.html HTTP/1.1
Host: exemple.fr
Content-type: text/html
Content-length: 16
<p>Nouveau fichier</p>
Si la ressource cible ne possède pas de représentation courante et que la requête PUT en crée une avec succès, le serveur d'origine doit envoyer une réponse 201 Created :
HTTP/1.1 201 Created
Content-Location: /nouveau.html
Si la ressource cible possède déjà une représentation et que celle-ci est modifiée avec succès selon l'état transmis dans la requête, le serveur d'origine doit envoyer soit une réponse 200 OK, soit une réponse 204 No Content pour indiquer la réussite de la requête :
HTTP/1.1 204 No Content
Content-Location: /existant.html
Spécifications
| Specification |
|---|
| HTTP Semantics> # PUT> |
Compatibilité des navigateurs
Le navigateur n'utilise pas la méthode PUT pour les actions initiées par l'utilisateur·ice, donc la « compatibilité navigateur » ne s'applique pas.
Les développeur·euse·s peuvent définir cette méthode de requête avec fetch().
Voir aussi
- Méthodes de requête HTTP
- Codes d'état de réponse HTTP
- En-têtes HTTP
- Les statuts de réponse
201 Created,204 No Content