[519] 409
(Conflict)
は、対象資源の現在の状態と要求との不整合によって要求を処理できなかったことを示す状態符号です
>>514。
[518] 鯖は、利用者が衝突の原因を認識できる十分な情報を payload に含めるべきです >>514。
[2] payload body には DAV:
名前空間の
error
要素を使うことができます >>1。
[6] WebDAV 鯖は、適切な事前条件符号や事後条件符号があれば XML を返すべきです。それ以外のエラーでは空の payload body を返しても構いませんし、独自の要素を使ってエラーを表しても構いません。 >>5
[513] 起源鯖は、 PUT
の表現が当該対象資源に関する変更できない鯖の制約を
(あれば) 満たしているか検証するべきです。満たしていない時には、
満たすように変形を加えるか、適切な説明とともにエラーを返すべきです。
状態符号としては、 409
を使うことができます。 >>507
[12] PROPPATCH
要求に対する 207
応答内の status
要素では、
指定された値が特性の意味的に正しくないことを表すために使うことができます >>11。
[9] MKCOL
要求 >>8 や
PUT
要求 >>10 や
LOCK
要求 >>17
で指定された資源の親となるべきコレクションが存在しない時は、
409
応答を返さなければなりません。
[14] COPY
要求 >>13 や
MOVE
要求 >>16
で指定された終点の資源の親となるべきコレクションが存在しない時は、
409
応答を返すことができます。
[15] COPY
要求や MOVE
要求において生特性を始点と終点とで同じ動作にできなかった時には、
状態符号 409
と事後条件符号
preserved-live-properties
を使うことができます >>5。
[19] UNLOCK
要求において対象資源がロックされていない場合や、
ロックが対象資源を含んでいない場合には、 409
応答を返し、
事前条件符号として lock-token-matches-request-uri
を使うべきです
>>18, >>5。
[21] PATCH
要求のパッチ文書の適用により衝突が発生する場合には、
409
応答を返すことができます >>20。
The request could not be completed due to a conflict with the current state of the resource. This code is only allowed in situations where it is expected that the user might be able to resolve the conflict and resubmit the request. The response body SHOULD include enough information for the user to recognize the source of the conflict. Ideally, the response entity would include enough information for the user or user agent to fix the problem; however, that
maymight not be possible and is not required.
資源の現在の状態と衝突したために、要求は完了できませんでした。 この符号は、利用者が衝突を解決可能で要求を再提出できそうに思われる場合にのみ認められます。 応答本体は、利用者が衝突の原因を認識できる十分な情報を含んでいるべきです。 理想的には、応答実体は利用者又は利用者エージェントが問題を修正するのに十分な情報を含んでいるのがよいでしょうが、それは可能ではないかもしれませんし、必須ではありません。
Conflicts are most likely to occur in response to a PUT request. For example, if
Ifversioningiswere being used and the entity being PUT includes changes to a resource which conflict with those made by an earlier (third-party) request, the serverMAYmight use the 409 response to indicate that it can't complete the request. In this case, the response entitySHOULDwould likely contain a list of the differences between the two versions in a format defined by the response Content-Type.
衝突は PUT
要求への応答で最も起こりそうです。
例えば、版管理が行われており、 PUT
している実体が以前の (第3者による)
要求による変更と衝突する変更を含んでいるとしたら、
サーバーは 409
応答を使って要求が完了できなかったことを示すことができるでしょう。
この場合には、応答実体は応答 Content-Type
で定義された書式によって、2つの版の差分の一覧を含めることとなるでしょう。
[22] 処理の対象がロックされている場合には、 423
を使うことができます。
409 patch_conflict The patch could not be applied due to a potentially inconsistent state.
409 - conflict name already assigned
409 - Application not subscribed to event source.
409 Conflict: if the version label is already in use for another version of this rexource
[27] RFC 4791 - Calendaring Extensions to WebDAV (CalDAV) () <https://tools.ietf.org/html/rfc4791#section-5.3.1.1>
403
を使えます。