MOVE

要求メソッド MOVE (HTTP)

[30] MOVE メソッドは、対象資源を他の URL へと移動させるものです。

仕様書

意味

[17] MOVE メソッドは、 資源を複製 (COPY メソッド相当) し、 一貫性維持処理を行い、 元の資源を削除する一連の動作を単一の操作として実行することを求めるものです >>8

[16] ここで一貫性維持処理とは、 移動に伴い発生する更新処理で、 元の資源を識別する要求URL以外の URL をすべて新しい資源を指すように変更するものです >>8

[13] 安全なメソッドではありませんが、冪等メソッドです >>8

[2] 書き込みロックの適用対象となります >>1

構文

[9] Destination: ヘッダーを指定しなければなりません >>7, >>8

[23] WebDAV コレクションにおいては、 Depth: inifinity 以外の値を指定してはなりません >>8

処理

[11] WebDAV に従う資源MOVE メソッドに対応しなければなりません。 しかし資源を移動できる保証はありません。 >>8

[12] 例えば同じにみえても、資源によって別のプログラムにより制御されているかもしれません >>8

[40] 終点資源が異なるシステムなどの理由で移動できない時は、 502 応答を返すことができます >>8

[37] 始点と終点が同じ資源だった場合には、 403 応答を返すことができます >>8

[38] 終点資源を作る前に中間のコレクションをいくつか作らないといけないときには、 409 応答を返すことができます。 WebDAV は中間のコレクションを自動的に作ってはなりません>>8

[10] 要求URLによって識別される資源始点 (source) Destination: ヘッダーURL によって識別される資源終点 (destination) です >>7, >>8

[22] 始点資源が WebDAV コレクションの場合、要求Depth: infinity が指定されたかのように処理しなければなりません >>8

[21] 始点資源が WebDAV コレクションの場合、 Depth: infinity は始点資源を終点に移動すると共に、 その内部メンバーURLをその相対的な位置へと (コレクション階層すべてにわたり) 再帰的に移動します >>8

[15] 終点に既に資源が存在していれば、 Overwrite: T の場合には DELETE メソッドDepth: inifinity が指定された場合のように終点資源を削除しなければなりません>>8

[26] 終点に既に資源が存在しており、 Overwrite: F の場合には、 412 応答を返して要求の処理は失敗しなければなりません >>8, >>31

[32] Overwrite: ヘッダーが省略された場合の既定値は T です >>31

[24] 要求Destination: 以外のヘッダーは、 複製する各資源に対して適用しなければなりません >>7, >>8

[25] コレクションメンバーの移動時には、 Destination: ヘッダーURL 自体ではなく、コレクションの階層内の位置に応じた値を使います >>7, >>8

[27] WebDAV コレクションの移動完了後には始点および終点において一貫したURL名前空間を作っていなければなりません。 内部のコレクションの移動中にエラーが発生した時は、 そのコレクションメンバー資源を移動してはなりません (つまりその部分木を飛ばすこととなります)。それによって名前空間が一貫しなくなることがあります。 しかしエラーの検出後にも元の移動操作をできる限り完了させようと試みるべきです (エラーになっていない部分木は複製しようと試みるべきです)。 またコレクション以外の資源の複製でエラーが発生した時も、 できるだけ移動するよう試みるべきです>>8

[18] 生特性資源と共に移動して新しい資源特性となるべきですが、 必ずしも同じ値である必要はありません。値の存在・不存在が意味を持つ場合には、 移動後に特性が存在しなくなることもあり得ます。 >>8 生特性が移動によって元通り機能しなくなるであろう場合には、 要求の処理を失敗して 409 応答事前条件符号 preserved-live-properties を返しても構いません >>8, >>43資源の作成時の生特性をすべてリセットするのは適切ではありません >>8

[19] 例えば DAV:creationdate は元の値のままとするべきです >>8

[41]特性の項も参照。

[20] 死特性資源と共に移動しなければなりません >>8

[39] 始点資源か終点資源がロックされている場合には、 423 応答を返すことができます。その場合事前条件符号 lock-token-submitted >>42 を含めるべきです>>8

[4] 移動元が書き込みロックされていても、このロックは移動してはなりません >>3

[5] 移動先がコレクションにより間接的にロックされていれば、それが適用されるようになります。
[6] 移動元のロックはそのまま存在しなくなった資源に適用され続けるのでしょうか?

[34] 移動に成功して新しい資源が作成された際には、 201 応答を返します >>83xx を返してはなりません >>33

[35] 移動に成功して既存の URL に書き込まれた際には、 204 応答を返します >>8

[28] WebDAV コレクションの移動中に要求URL以外の移動でエラーが発生した場合には、 207 応答により、失敗した資源URL とエラーを記述して返さなければなりません >>8

[36] いくつかの資源ロックにより移動できなかったなら、 207 応答内で 423 を使うことができます >>8

[29] 207 応答内では 424201 は使うべきではありません >>8

[14] 応答キャッシュ不可能です >>8

歴史

[49] RFC 2518 では propertybehavior 要素 >>48要求payload body根要素として使っていました。 RFC 4918 では削除されています。

[44] REST API ( ()) <http://quasar-analytics.org/docs/restapi/>

REQUEST

MOVE http://localhost:20223/data/fs/sample/data/SampleJSON

Headers:

Destination: /sample/data/SampleJSON2

RESPONSE

Status code 200 if successful. No response body.

[45] RESTful HTTP API - Fedora 4.0 Documentation - DuraSpace Wiki () <https://wiki.duraspace.org/display/FEDORA40/RESTful+HTTP+API>

MOVE  Move a resource (and its subtree) to a new location

[46] RFC 8144 - Use of the Prefer Header Field in Web Distributed Authoring and Versioning (WebDAV) () <https://tools.ietf.org/html/rfc8144#section-3.1>

[47] RFC 3253 - Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning) () <https://tools.ietf.org/html/rfc3253#section-3.15>

[50] RFC 3253 - Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning) () <https://tools.ietf.org/html/rfc3253#section-5.8>

[51] RFC 3253 - Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning) () <https://tools.ietf.org/html/rfc3253#section-6.6>

[52] RFC 3253 - Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning) () <https://tools.ietf.org/html/rfc3253#section-9.7>

[53] RFC 3253 - Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning) () <https://tools.ietf.org/html/rfc3253#section-13.9>

[54] RFC 3253 - Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning) () <https://tools.ietf.org/html/rfc3253#section-14.7>

[55] RFC 3744 - Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol () <https://tools.ietf.org/html/rfc3744#section-7.3>

[56] RFC 3744 - Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol () <https://tools.ietf.org/html/rfc3744#section-7.4>

[57] RFC 4791 - Calendaring Extensions to WebDAV (CalDAV) () <https://tools.ietf.org/html/rfc4791#section-5.3.2.1>

[58] RFC 5842 - Binding Extensions to Web Distributed Authoring and Versioning (WebDAV) () <https://tools.ietf.org/html/rfc5842#section-2.5>