-
Notifications
You must be signed in to change notification settings - Fork 4
/
986.txt
70 lines (48 loc) · 4.12 KB
/
986.txt
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
* 仕様書
[REFS[
- [1] [CITE@en[RFC 4918 - HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)]] ([TIME[2014-09-21 17:04:59 +09:00]] 版) <http://tools.ietf.org/html/rfc4918#section-7>
- [3] [CITE@en[RFC 4918 - HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)]] ([TIME[2014-09-21 17:04:59 +09:00]] 版) <http://tools.ietf.org/html/rfc4918#section-7.6>
- [7] [CITE@en[RFC 4918 - HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)]] ([TIME[2014-09-21 17:04:59 +09:00]] 版) <http://tools.ietf.org/html/rfc4918#section-9.8>
- [8] '''[CITE@en[RFC 4918 - HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)]] ([TIME[2014-09-21 17:04:59 +09:00]] 版) <http://tools.ietf.org/html/rfc4918#section-9.9>'''
]REFS]
* 意味
[17] [CODE(HTTP)@en[[[MOVE]]]] [[メソッド]]は、
[[資源]]を複製 ([CODE(HTTP)@en[[[COPY]]]] [[メソッド]]相当) し、
一貫性維持処理を行い、
元の[[資源]]を削除する一連の動作を単一の操作として実行することを求めるものです [SRC[>>8]]。
[16] ここで一貫性維持処理とは、
移動に伴い発生する更新処理で、
元の[[資源]]を識別する[[要求URL]]以外の [[URL]] をすべて新しい[[資源]]を指すように変更するものです [SRC[>>8]]。
[13] [[安全なメソッド]]ではありませんが、[[冪等メソッド]]です [SRC[>>8]]。
[2] [[書き込みロック]]の適用対象となります [SRC[>>1]]。
* 構文
[9] [CODE(HTTP)@en[[[Destination:]]]] [[ヘッダー]]を指定しなければ[['''なりません''']] [SRC[>>7, >>8]]。
* 処理
[11] [[WebDAV]] に従う[[資源]]は [CODE(HTTP)@en[[[MOVE]]]]
[[メソッド]]に対応しなければ[['''なりません''']]。
しかし[[資源]]を複製できる保証はありません。 [SRC[>>8]]
[EG[
[12] 例えば同じ[[鯖]]にみえても、[[資源]]によって別の[[プログラム]]により制御されているかもしれません [SRC[>>8]]。
]EG]
[10] [[要求URL]]によって識別される[[資源]]が[RUBYB[始点]@en[source]]、
[CODE(HTTP)@en[[[Destination:]]]] [[ヘッダー]]の [[URL]] によって識別される[[資源]]が[RUBYB[終点]@en[destination]]です [SRC[>>7, >>8]]。
[15] 終点に既に[[資源]]が存在していれば、 [CODE(HTTP)@en[[[Overwrite:]]]]
[[ヘッダー]]次第で既存の[[資源]]は削除されます [SRC[>>8]]。
[24] [[要求]]の [CODE(HTTP)@en[[[Destination:]]]] 以外の[[ヘッダー]]は、
複製する各[[資源]]に対して適用しなければ[['''なりません''']] [SRC[>>7, >>8]]。
[25] [[コレクション]]の[[メンバー]]の複製時には、 [CODE(HTTP)@en[[[Destination:]]]]
[[ヘッダー]]の [[URL]] 自体ではなく、[[コレクション]]の階層内の位置に応じた値を使います
[SRC[>>7, >>8]]。
[18] [[生特性]]は[[資源]]と共に移動して新しい[[資源]]の[[特性]]となる[['''べきです''']]が、
必ずしも同じ値である必要はありません。値の存在・不存在が意味を持つ場合には、
移動後に[[特性]]が存在しなくなることもあり得ます。
[[生特性]]が移動によって元通り機能しなくなるであろう場合には、
[[要求]]の処理を失敗しても構いません。[[資源]]の作成時の[[生特性]]をすべてリセットするのは適切ではありません。 [SRC[>>8]]
[EG[
[19] 例えば [CODE(URI)@en[[[DAV:creationdate]]]] は元の値のままとするべきです [SRC[>>8]]。
]EG]
[20] [[死特性]]は[[資源]]と共に移動しなければ[['''なりません''']] [SRC[>>8]]。
[4] 移動元が[[書き込みロック]]されていても、これを移動しては[['''なりません''']] [SRC[>>3]]。
;; [5] 移動先が[[コレクション]]により間接的に[[ロック]]されていれば、それが適用されるようになります。
;; [6] 移動元の[[ロック]]はそのまま存在しなくなった[[資源]]に適用され続けるのでしょうか?
[14] [[応答]]は[[キャッシュ不可能]]です [SRC[>>8]]。