MOVE
Relocates a resource or collection from one URI to another, defined by WebDAV.
What it does
MOVE relocates a resource (or an entire collection) from its current URI to a new one — effectively an atomic COPY-then-DELETE, expressed as a single method rather than two separate requests. Like COPY, the destination is specified in a Destination header, not the request body.
Semantics
| Property | Value | Why it matters |
|---|---|---|
| Safe | No | Removes the resource from its original location |
| Idempotent | Yes | Moving A to B, then trying again, leaves things in the same end state (though the second call may 404/409 depending on implementation, since A no longer exists at the source) |
| Cacheable | No | Not a read |
| Request body | No | Destination comes from the Destination header |
| Response body | Optional | Typically empty |
Syntax & example request
MOVE /files/draft.pdf HTTP/1.1
Host: dav.example.com
Destination: https://dav.example.com/files/final/report.pdf
Overwrite: F
HTTP/1.1 201 Created
curl example
curl -X MOVE https://dav.example.com/files/draft.pdf \
-H "Destination: https://dav.example.com/files/final/report.pdf" \
-H "Overwrite: F"
Common status codes returned
- 201 Created — resource relocated, new destination created → see 201
- 204 No Content — destination already existed and was overwritten → see 204
- 409 Conflict — destination's parent doesn't exist, or the source is locked in a way that prevents the move → see 409
MOVE vs COPY vs DELETE
| MOVE | COPY | DELETE | |
|---|---|---|---|
| Source afterward | Gone | Unchanged | Gone |
| Destination afterward | Resource now lives here | New duplicate exists here | N/A |
| Effectively equivalent to | COPY + DELETE (atomically) | Just the copy step | Just the removal step |
Real-world usage
- WebDAV clients renaming or relocating files/folders (cut-paste, or a rename, which is just a MOVE within the same parent collection)
- Sync clients reconciling remote file moves detected locally
Security considerations
Same destination-permission concerns as COPY apply — the caller needs write authorization at the destination, not just at the source. Additionally, MOVE interacts with WebDAV's locking model (see LOCK): moving a locked resource, or moving into/out of a locked collection, has specific rules servers must honor to avoid silently breaking another client's lock.
FAQ
Is renaming a file the same as MOVE?
Yes — a rename is just a MOVE where the destination is in the same parent collection with a different final path segment. WebDAV doesn't have a separate "rename" method.
What happens to locks when you MOVE a resource?
WebDAV's locking spec has explicit rules for this — a lock generally needs to be re-submitted or is handled specially during a MOVE, since the lock token was issued against the original URI and the resource is relocating.
Can MOVE fail partway through on a collection?
For a collection move, the spec expects atomicity as much as the underlying storage allows, but partial failures (some child resources moved, others blocked by a lock or permission issue) are reported via a multi-status response, similar to PROPFIND/PROPPATCH.
Fun fact
Despite being one method, MOVE across storage systems (network filesystems, S3-style object stores) is frequently implemented under the hood as exactly what its name implies it isn't — a copy followed by a delete — because many storage backends have no native "rename" primitive for cross-directory moves, only same-directory renames.