1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
---
title: PUT
slug: Web/HTTP/Methods/PUT
tags:
- HTTP
- HTTP method
- Reference
- Request method
translation_of: Web/HTTP/Methods/PUT
original_slug: Web/HTTP/Méthode/PUT
---
<div>{{HTTPSidebar}}</div>
<p>La <strong>méthode HTTP PUT</strong> crée une nouvelle ressource ou remplace une représentation de la ressource ciblée par le contenu de la requête.</p>
<p>La différence entre <code>PUT</code> et <a class="new" href="https://developer.mozilla.org/fr/docs/Web/HTTP/Methods/POST" title="Cette documentation n'a pas encore été rédigée, vous pouvez aider en contribuant !"><code>POST</code></a> tient au fait que <code>PUT</code> est une méthode idempotente. Une requête PUT, envoyée une ou plusieurs fois avec succès, aura toujours le même effet (il n'y a pas d'effet <em>de bord</em>). À l'inverse, des requêtes POST successives et identiques peuvent avoir des effets additionnels, ce qui peut revenir par exemple à passer plusieurs fois une commande.</p>
<table class="properties">
<tbody>
<tr>
<th scope="row">La requête a un corps</th>
<td>Oui</td>
</tr>
<tr>
<th scope="row">Une réponse de succès a un corps</th>
<td>Non</td>
</tr>
<tr>
<th scope="row">{{Glossary("Sûre")}}</th>
<td>Non</td>
</tr>
<tr>
<th scope="row">{{Glossary("Idempotente")}}</th>
<td>Oui</td>
</tr>
<tr>
<th scope="row">{{Glossary("Peut être mise en cache")}}</th>
<td>Non</td>
</tr>
<tr>
<th scope="row">Autorisée dans les <a href="https://developer.mozilla.org/fr/docs/Web/Guide/HTML/Formulaires">formulaires HTML</a></th>
<td>Non</td>
</tr>
</tbody>
</table>
<h2 id="Syntaxe">Syntaxe</h2>
<pre class="syntaxbox">PUT /new.html HTTP/1.1
</pre>
<h2 id="Exemple">Exemple</h2>
<h3 id="Requête">Requête</h3>
<pre>PUT /new.html HTTP/1.1
Host: example.com
Content-type: text/html
Content-length: 16
<p>New File</p></pre>
<h3 id="Réponses">Réponses</h3>
<p>Si la ressource ciblée ne possède pas de représentation courante et que la requête <code>PUT</code> en crée une avec succès, alors le serveur d'origine doit informer l'agent utilisateur en envoyant une réponse{{HTTPStatus("201")}} (<code>Created</code>).</p>
<pre class="newpage">HTTP/1.1 201 Created
Content-Location: /new.html</pre>
<p>Si la ressource ciblée a déjà une représentation et que cette représentation est modifiée avec succès, conformément à l'état de la représentation jointe, alors le serveur d'origine doit envoyer une réponse, que ce soit {{HTTPStatus("200")}} (<code>OK</code>) ou {{HTTPStatus("204")}} (<code>No Content</code>), pour indiquer la réussite de la requête.</p>
<pre>HTTP/1.1 204 No Content
Content-Location: /existing.html
</pre>
<h2 id="Spécifications">Spécifications</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Spécification</th>
<th scope="col">Titre</th>
</tr>
<tr>
<td>{{RFC("7231", "PUT", "4.3.4")}}</td>
<td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
</tr>
</tbody>
</table>
<h2 id="Voir_aussi">Voir aussi</h2>
<ul>
<li>{{HTTPStatus("201")}}</li>
<li>{{HTTPStatus("204")}}</li>
</ul>
|