aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/http/methods/put/index.html
blob: 45302eadfdc81c7635a987d00444c192a6a0dd28 (plain)
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

&lt;p&gt;New File&lt;/p&gt;</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>