The HTTP PUT request method creates a new resource or replaces a representation of the target resource with the request payload.
The difference between
POST is that
PUT is idempotent: calling it once or several times successively has the same effect (that is no side effect), where successive identical
POST may have additional effects, like passing an order several times.
|Request has body||Yes|
|Successful response has body||No|
|Allowed in HTML forms||No|
PUT /new.html HTTP/1.1
PUT /new.html HTTP/1.1 Host: example.com Content-type: text/html Content-length: 16 <p>New File</p>
If the target resource does not have a current representation and the
PUT request successfully creates one, then the origin server must inform the user agent by sending a
HTTP/1.1 201 Created Content-Location: /new.html
If the target resource does have a current representation and that representation is successfully modified in accordance with the state of the enclosed representation, then the origin server must send either a
OK) or a
No Content) response to indicate successful completion of the request.
HTTP/1.1 204 No Content Content-Location: /existing.html
|RFC 7231, section 4.3.4: PUT||Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content|