[要約] RFC 8144は、WebDAVでPreferヘッダーフィールドを使用するためのガイドラインです。その目的は、クライアントがサーバーに対して優先順位やオプションを指定するための標準化された方法を提供することです。

Internet Engineering Task Force (IETF)                      K. Murchison
Request for Comments: 8144                                           CMU
Updates: 7240                                                 April 2017
Category: Standards Track
ISSN: 2070-1721
        

Use of the Prefer Header Field in Web Distributed Authoring and Versioning (WebDAV)

Web分散オーサリングとバージョン管理(WebDAV)での優先ヘッダーフィールドの使用

Abstract

概要

This document defines how the Prefer header field (RFC 7240) can be used by a Web Distributed Authoring and Versioning (WebDAV) client to request that certain behaviors be employed by a server while constructing a response to a request. Furthermore, it defines the new "depth-noroot" preference.

このドキュメントでは、リクエストへの応答を構築する際に、サーバーが特定の動作を採用することを要求するために、Web分散オーサリングとバージョン管理(WebDAV)クライアントが優先ヘッダーフィールド(RFC 7240)をどのように使用できるかを定義します。さらに、新しい「depth-noroot」設定を定義します。

This document updates RFC 7240.

このドキュメントはRFC 7240を更新します。

Status of This Memo

本文書の状態

This is an Internet Standards Track document.

これはInternet Standards Trackドキュメントです。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.

このドキュメントは、IETF(Internet Engineering Task Force)の製品です。これは、IETFコミュニティのコンセンサスを表しています。公開レビューを受け、インターネットエンジニアリングステアリンググループ(IESG)による公開が承認されました。インターネット標準の詳細については、RFC 7841のセクション2をご覧ください。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc8144.

このドキュメントの現在のステータス、エラッタ、およびフィードバックの提供方法に関する情報は、http://www.rfc-editor.org/info/rfc8144で入手できます。

Copyright Notice

著作権表示

Copyright (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved.

Copyright(c)2017 IETF Trustおよびドキュメントの作成者として識別された人物。全著作権所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

この文書は、BCP 78およびこの文書の発行日に有効なIETF文書に関するIETFトラストの法的規定(http://trustee.ietf.org/license-info)の対象となります。これらのドキュメントは、このドキュメントに関するあなたの権利と制限を説明しているため、注意深く確認してください。このドキュメントから抽出されたコードコンポーネントには、Trust Legal Provisionsのセクション4.eに記載されているSimplified BSD Licenseのテキストが含まれている必要があり、Simplified BSD Licenseに記載されているように保証なしで提供されます。

Table of Contents

目次

   1. Introduction ....................................................3
      1.1. Notational Conventions .....................................3
   2. Reducing WebDAV Response Verbosity with "return=minimal" ........3
      2.1. Minimal PROPFIND and REPORT Responses ......................4
      2.2. Minimal PROPPATCH Response .................................5
      2.3. Minimal MKCALENDAR and MKCOL Responses .....................5
   3. Reducing WebDAV Roundtrips with "return=representation" .........6
      3.1. Successful State-Changing Requests .........................6
      3.2. Unsuccessful Conditional State-Changing Requests ...........6
   4. The "depth-noroot" Processing Preference ........................7
   5. Security Considerations .........................................7
   6. IANA Considerations .............................................8
      6.1. Preference Registration ....................................8
      6.2. Method References ..........................................8
      6.3. Status Code References .....................................9
   7. References ......................................................9
      7.1. Normative References .......................................9
      7.2. Informative References ....................................10
   Appendix A.  The Brief and Extended Depth Header Fields ...........12
   Appendix B.  Examples .............................................12
     B.1.  PROPFIND ..................................................12
     B.2.  REPORT ....................................................16
     B.3.  PROPPATCH .................................................21
     B.4.  MKCOL .....................................................22
     B.5.  POST ......................................................23
     B.6.  PUT .......................................................27
   Acknowledgements ..................................................28
   Author's Address ..................................................28
        
1. Introduction
1. はじめに

[RFC7240] defines the Prefer header field and the "return=minimal" preference, which indicate that a client wishes for the server to return a minimal response to a successful request but states that what constitutes an appropriate minimal response is left solely to the discretion of the server. Section 2 of this specification defines precisely what is expected of a server when constructing minimal responses to successful WebDAV [RFC4918] requests.

[RFC7240]は、Preferヘッダーフィールドと「return = minimal」設定を定義します。これは、クライアントがサーバーにリクエストの成功に対して最小限の応答を返すことを望んでいることを示しますが、適切な最小限の応答の構成要素は裁量に任されていると述べていますサーバーの。この仕様のセクション2は、成功したWebDAV [RFC4918]要求に対する最小限の応答を構築するときにサーバーに期待されることを正確に定義しています。

[RFC7240] also defines the "return=representation" preference, which indicates that a client wishes for the server to include an entity representing the current state of the resource in the response to a successful request. Section 3 of this specification makes recommendations on when this preference should be used by clients and extends its applicability to 412 (Precondition Failed) [RFC7232] responses.

[RFC7240]は、「return = representation」設定も定義します。これは、クライアントがサーバーに、成功した要求への応答にリソースの現在の状態を表すエンティティを含めることを望んでいることを示します。この仕様のセクション3は、この設定をクライアントがいつ使用するかに関する推奨事項を作成し、その適用範囲を412(Precondition Failed)[RFC7232]応答に拡張します。

Finally, Section 4 of this specification defines the "depth-noroot" preference that can be used with HTTP methods that support the Depth header field.

最後に、この仕様のセクション4では、DepthヘッダーフィールドをサポートするHTTPメソッドで使用できる「depth-noroot」設定を定義しています。

1.1. Notational Conventions
1.1. 表記規則

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

このドキュメントのキーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「MAY」、および「OPTIONAL」は、 [RFC2119]で説明されているように解釈されます。

This document references XML element types in the "DAV:" [RFC4918], "urn:ietf:params:xml:ns:caldav" [RFC4791], and "urn:ietf:params:xml:ns:carddav" [RFC6352] namespaces outside of the context of an XML fragment. When doing so, the strings "DAV:", "CALDAV:", and "CARDDAV:" will be prepended to the XML element types, respectively.

このドキュメントは、「DAV:」[RFC4918]、「urn:ietf:params:xml:ns:caldav」[RFC4791]、および「urn:ietf:params:xml:ns:carddav」[RFC6352]のXML要素タイプを参照していますXMLフラグメントのコンテキスト外の名前空間。その場合、文字列「DAV:」、「CALDAV:」、および「CARDDAV:」がそれぞれXML要素タイプの前に付加されます。

2. Reducing WebDAV Response Verbosity with "return=minimal"
2. 「return = minimal」でWebDAV応答の冗長性を減らす

Some payload bodies in responses to WebDAV requests, such as 207 (Multi-Status) [RFC4918] responses, can be quite verbose or even unnecessary at times. This specification defines how the Prefer header field, in conjunction with its "return=minimal" preference, can be used by clients to reduce the verbosity of such responses by requesting that the server omit those portions of the response that can be inferred by their absence.

207(Multi-Status)[RFC4918]応答など、WebDAV要求への応答に含まれる一部のペイロード本体は、非常に冗長であるか、場合によっては不要な場合もあります。この仕様は、Preferヘッダーフィールドをその「return = minimal」設定と組み合わせて使用​​し、不在によって推測できる応答の部分をサーバーが省略できることを要求することにより、そのような応答の冗長性を減らす方法を定義します。 。

2.1. Minimal PROPFIND and REPORT Responses
2.1. 最小限のPROPFINDおよびREPORT応答

When a PROPFIND [RFC4918] request, or a REPORT [RFC3253] request whose report type results in a 207 (Multi-Status) response, contains a Prefer header field with a preference of "return=minimal", the server SHOULD omit all DAV:propstat XML elements containing a DAV:status XML element of value 404 (Not Found) [RFC7231] from the 207 (Multi-Status) response. If the omission of such a DAV:propstat element would result in a DAV:response XML element containing zero DAV:propstat elements, the server MUST substitute one of the following in its place:

PROPFIND [RFC4918]リクエスト、またはレポートタイプが207(Multi-Status)レスポンスになるREPORT [RFC3253]リクエストに、「return = minimal」のプリファレンスを持つPreferヘッダーフィールドが含まれている場合、サーバーはすべてのDAVを省略する必要があります(SHOULD) :207(Multi-Status)応答からの値404(Not Found)[RFC7231]のDAV:status XML要素を含む:propstat XML要素。このようなDAV:propstat要素を省略すると、DAV:propstat要素を含まないDAV:response XML要素になる場合、サーバーは代わりに次のいずれかを使用する必要があります。

o a DAV:propstat element consisting of an empty DAV:prop element and a DAV:status element of value 200 (OK) [RFC7231]

o 空のDAV:prop要素と値200(OK)のDAV:status要素で構成されるDAV:propstat要素[RFC7231]

o a DAV:status element of value 200 (OK)

o 値200のDAV:status要素(OK)

The following report types are candidates that could benefit from use of the "return=minimal" preference. NOTE: This list is not intended to be normative or exhaustive.

次のレポートタイプは、「return = minimal」設定を使用することでメリットが得られる候補です。注:このリストは、規範的または網羅的なものではありません。

o DAV:expand-property [RFC3253]

o DAV:expand-property [RFC3253]

o DAV:acl-principal-prop-set [RFC3744]

o DAV:acl-main-prop-set [RFC3744]

o DAV:principal-property-search [RFC3744]

o DAV:principal-property-search [RFC3744]

o DAV:sync-collection [RFC6578]

o DAV:sync-collection [RFC6578]

o CALDAV:calendar-query [RFC4791]

o CALDAV:calendar-query [RFC4791]

o CALDAV:calendar-multiget [RFC4791]

o CALDAV:calendar-multiget [RFC4791]

o CARDDAV:addressbook-query [RFC6352]

o CARDDAV:addressbook-query [RFC6352]

o CARDDAV:addressbook-multiget [RFC6352]

o CARDDAV:addressbook-multiget [RFC6352]

See Appendices B.1 and B.2 for examples.

例については、付録B.1およびB.2を参照してください。

2.2. Minimal PROPPATCH Response
2.2. 最小限のPROPPATCH応答

When a PROPPATCH [RFC4918] request contains a Prefer header field with a preference of "return=minimal", and all instructions are processed successfully, the server SHOULD return one of the following responses rather than a 207 (Multi-Status) response:

PROPPATCH [RFC4918]リクエストに "return = minimal"のプリファレンスを持つPreferヘッダーフィールドが含まれ、すべての命令が正常に処理されると、サーバーは207(マルチステータス)応答ではなく、次のいずれかの応答を返す必要があります(SHOULD)。

o 204 (No Content) [RFC7231]

o 204(コンテンツなし)[RFC7231]

o 200 (OK) [RFC7231] (preferably with a zero-length message body)

o 200(OK)[RFC7231](長さがゼロのメッセージ本文が望ましい)

See Appendix B.3 for examples.

例については、付録B.3を参照してください。

2.3. Minimal MKCALENDAR and MKCOL Responses
2.3. 最小限のMKCALENDARおよびMKCOL応答

Both the MKCALENDAR [RFC4791] and Extended MKCOL [RFC5689] specifications indicate that a server MAY return a message body in response to a successful request. This specification explicitly defines the intended behavior in the presence of the Prefer header field.

MKCALENDAR [RFC4791]とExtended MKCOL [RFC5689]の両方の仕様は、サーバーがリクエストの成功に応答してメッセージ本文を返す可能性があることを示しています。この仕様は、Preferヘッダーフィールドがある場合の意図された動作を明示的に定義します。

When a MKCALENDAR or an extended MKCOL request contains a Prefer header field with a preference of "return=minimal", and the collection is created with all requested properties being set successfully, the server SHOULD return a 201 (Created) [RFC7231] response with an empty (zero-length) message body.

MKCALENDARまたは拡張MKCOLリクエストに「return = minimal」の設定を持つPreferヘッダーフィールドが含まれ、リクエストされたすべてのプロパティが正常に設定されたコレクションが作成された場合、サーバーは201(Created)[RFC7231]レスポンスを返す必要があります。空(長さがゼロ)のメッセージ本文。

Note that the rationale for requiring that a minimal success response have an empty body is twofold:

最小の成功応答に空の本文があることを要求する根拠は2つあることに注意してください。

o [RFC4791], Section 5.3.1 states: "If a response body for a successful request is included, it MUST be a CALDAV:mkcalendar-response XML element."

o [RFC4791]のセクション5.3.1には、「成功したリクエストのレスポンス本文が含まれている場合は、CALDAV:mkcalendar-response XML要素である必要があります。」

o [RFC5689], Section 3 states: "When an empty response body is returned with a success request status code, the client can assume that all properties were set."

o [RFC5689]、セクション3には次のように記載されています。「空のレスポンス本文が成功リクエストステータスコードとともに返されると、クライアントはすべてのプロパティが設定されたと見なすことができます。」

See Appendix B.4 for examples.

例については、付録B.4を参照してください。

3. Reducing WebDAV Roundtrips with "return=representation"
3. 「return = representation」を使用してWebDAV往復を減らす

[RFC7240] describes the "return=representation" preference as being intended to provide a means of optimizing communication between the client and server by eliminating the need for a subsequent GET request to retrieve the current representation of the resource following a modification. This preference is equally applicable to situations where the server itself modifies a resource, and where a resource has been modified by another client.

[RFC7240]は、「return = representation」設定を、変更後のリソースの現在の表現を取得するための後続のGET要求の必要性を排除することにより、クライアントとサーバー間の通信を最適化する手段を提供することを目的として説明しています。この設定は、サーバー自体がリソースを変更した場合や、リソースが別のクライアントによって変更された場合にも同様に適用できます。

3.1. Successful State-Changing Requests
3.1. 成功した状態変更リクエスト

The state-changing methods PUT [RFC7231], COPY/MOVE [RFC4918], PATCH [RFC5789], and POST [RFC5995] can be used to create or update a resource. In some instances, such as with Calendaring Extensions to WebDAV (CalDAV) Scheduling [RFC6638], the created or updated resource representation may differ from the representation sent in the body of the request or from that referenced by the effective request URI. In cases where the client, upon receiving a 2xx (Successful) [RFC7231] response to its state-changing request, would normally issue a subsequent GET request to retrieve the current representation of the resource, the client can instead include a Prefer header field with the "return=representation" preference in the state-changing request.

状態変更メソッドPUT [RFC7231]、COPY / MOVE [RFC4918]、PATCH [RFC5789]、およびPOST [RFC5995]を使用して、リソースを作成または更新できます。 WebDAV(CalDAV)スケジューリング[RFC6638]などの一部のインスタンスでは、作成または更新されたリソース表現が、リクエストの本文で送信された表現または有効なリクエストURIによって参照される表現と異なる場合があります。クライアントが、その状態変更要求に対する2xx(成功)[RFC7231]応答を受信すると、通常、後続のGET要求を発行してリソースの現在の表現を取得する場合、クライアントは代わりにPreferヘッダーフィールドを含めることができます。状態変更リクエストの「return = representation」設定。

When a state-changing request contains a Prefer header field with a preference of "return=representation", and the resource is created or updated successfully, the server SHOULD include an entity representing the current state of the resource in the resulting 201 (Created) or 200 (OK) [RFC7231] response. In addition to coalescing the create/update and retrieve operations into a single roundtrip, by returning the current representation of the resource in the response, the client will know that any changes to the resource were produced by the server rather than a concurrent client, thus providing a level of atomicity to the operation.

状態変更リクエストに「return = representation」の設定を持つPreferヘッダーフィールドが含まれ、リソースが正常に作成または更新された場合、サーバーは、結果の201(Created)にリソースの現在の状態を表すエンティティを含める必要があります(SHOULD)。または200(OK)[RFC7231]応答。作成/更新および取得操作を単一のラウンドトリップに合体させることに加えて、リソースの現在の表現を応答で返すことにより、クライアントはリソースへの変更が同時クライアントではなくサーバーによって生成されたことを認識します。操作に原子レベルのレベルを提供します。

See Appendix B.5 for examples.

例については、付録B.5を参照してください。

3.2. Unsuccessful Conditional State-Changing Requests
3.2. 失敗した条件付き状態変更リクエスト

Frequently, clients using a state-changing method such as those listed above will make them conditional by including either an If-Match or an If-None-Match [RFC7232] header field in the request. This is done to prevent the client from accidentally overwriting a resource whose current state has been modified by another client acting in parallel. In cases where the client, upon receiving a 412 (Precondition Failed) [RFC7232] response to its conditional state-changing request, would normally issue a subsequent GET request to retrieve the current representation of the resource, the client can instead include a Prefer header field with the "return=representation" preference in the conditional state-changing request.

多くの場合、上記のような状態変更メソッドを使用するクライアントは、リクエストにIf-MatchまたはIf-None-Match [RFC7232]ヘッダーフィールドを含めることにより、条件付きにします。これは、並行して動作している別のクライアントによって現在の状態が変更されたリソースを、クライアントが誤って上書きしないようにするために行われます。クライアントが、条件付きの状態変更要求に対する412(Precondition Failed)[RFC7232]応答を受信すると、通常、リソースの現在の表現を取得するために後続のGET要求を発行し、代わりにPreferヘッダーを含めることができます。条件付きの状態変更リクエストで「return = representation」設定を含むフィールド。

When a conditional state-changing request contains a Prefer header field with a preference of "return=representation", and the specified condition evaluates to false, the server SHOULD include an entity representing the current state of the resource in the resulting 412 (Precondition Failed) [RFC7232] response.

条件付きの状態変更リクエストに、「return = representation」という設定のPreferヘッダーフィールドが含まれ、指定された条件がfalseと評価された場合、サーバーは、結果の412(Precondition Failed)にリソースの現在の状態を表すエンティティを含める必要があります(SHOULD)。 )[RFC7232]応答。

See Appendix B.6 for examples.

例については、付録B.6を参照してください。

4. The "depth-noroot" Processing Preference
4. 「depth-noroot」処理設定

The "depth-noroot" preference indicates that the client wishes for the server to exclude the target (root) resource from processing by the HTTP method and only apply the HTTP method to the target resource's subordinate resources.

"depth-noroot"プリファレンスは、クライアントがサーバーにターゲット(ルート)リソースをHTTPメソッドによる処理から除外し、HTTPメソッドをターゲットリソースの従属リソースにのみ適用することを希望することを示します。

This preference is only intended to be used with HTTP methods whose definitions explicitly provide support for the Depth [RFC4918] header field. Furthermore, this preference only applies when the Depth header field has a value of "1" or "infinity" (either implicitly or explicitly).

この設定は、定義が深さ[RFC4918]ヘッダーフィールドのサポートを明示的に提供するHTTPメソッドでのみ使用することを目的としています。さらに、この設定は、深さヘッダーフィールドの値が「1」または「無限」(暗黙的または明示的)の場合にのみ適用されます。

The "depth-noroot" preference MAY be used in conjunction with the "return=minimal" preference in a single request.

「depth-noroot」設定は、単一のリクエストで「return = minimal」設定と組み合わせて使用​​される場合があります。

See Appendix B.1 for examples.

例については、付録B.1を参照してください。

5. Security Considerations
5. セキュリティに関する考慮事項

No new security considerations are introduced by use of the Prefer header field with WebDAV requests, beyond those discussed in [RFC7240] and those already inherent in those requests.

[RFC7240]で説明されているものや、それらの要求にすでに組み込まれているものを超えて、WebDAV要求でPreferヘッダーフィールドを使用することによる新しいセキュリティの考慮事項は導入されていません。

6. IANA Considerations
6. IANAに関する考慮事項
6.1. Preference Registration
6.1. 優先登録

The following preference has been added to the HTTP Preferences Registry defined in Section 5.1 of [RFC7240].

[RFC7240]のセクション5.1で定義されているHTTP Preferences Registryに次の設定が追加されました。

Preference: depth-noroot

設定:depth-noroot

Description: The "depth-noroot" preference indicates that the client wishes for the server to exclude the target (root) resource from processing by the HTTP method and only apply the HTTP method to the target resource's subordinate resources.

説明: "depth-noroot"プリファレンスは、クライアントがサーバーがターゲット(ルート)リソースをHTTPメソッドによる処理から除外し、ターゲットリソースの従属リソースにのみHTTPメソッドを適用することを望んでいることを示します。

Reference: RFC 8144, Section 4

参照:RFC 8144、セクション4

Notes: This preference is only intended to be used with HTTP methods whose definitions explicitly provide support for the Depth [RFC4918] header field. Furthermore, this preference only applies when the Depth header field has a value of "1" or "infinity" (either implicitly or explicitly).

注:この設定は、定義が深さ[RFC4918]ヘッダーフィールドのサポートを明示的に提供するHTTPメソッドでのみ使用することを目的としています。さらに、この設定は、深さヘッダーフィールドの値が「1」または「無限」(暗黙的または明示的)の場合にのみ適用されます。

6.2. Method References
6.2. メソッド参照

The following methods have had their references updated in the "HTTP Method Registry" (http://www.iana.org/assignments/http-methods).

次のメソッドは、「HTTPメソッドレジストリ」(http://www.iana.org/assignments/http-methods)で参照が更新されています。

   +------------+------+------------+----------------------------------+
   | Method     | Safe | Idempotent | References                       |
   | Name       |      |            |                                  |
   +------------+------+------------+----------------------------------+
   | MKCALENDAR | no   | yes        | RFC 4791, Section 5.3.1; RFC     |
   |            |      |            | 8144, Section 2.3                |
   | MKCOL      | no   | yes        | RFC 4918, Section 9.3; RFC 5689, |
   |            |      |            | Section 3; RFC 8144, Section 2.3 |
   | PROPFIND   | yes  | yes        | RFC 4918, Section 9.1; RFC 8144, |
   |            |      |            | Section 2.1                      |
   | PROPPATCH  | no   | yes        | RFC 4918, Section 9.2; RFC 8144, |
   |            |      |            | Section 2.2                      |
   | REPORT     | yes  | yes        | RFC 3253, Section 3.6; RFC 8144, |
   |            |      |            | Section 2.1                      |
   +------------+------+------------+----------------------------------+
        
6.3. Status Code References
6.3. ステータスコードのリファレンス

The following status code has had its references updated in the "HTTP Status Codes" registry (http://www.iana.org/assignments/http-status-codes).

次のステータスコードは、「HTTPステータスコード」レジストリ(http://www.iana.org/assignments/http-status-codes)で参照が更新されています。

   +-------+-------------------+---------------------------------------+
   | Value | Description       | References                            |
   +-------+-------------------+---------------------------------------+
   | 412   | Precondition      | RFC 7232, Section 4.2; RFC 8144,      |
   |       | Failed            | Section 3.2                           |
   +-------+-------------------+---------------------------------------+
        
7. References
7. 参考文献
7.1. Normative References
7.1. 引用文献

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <http://www.rfc-editor.org/info/rfc2119>.

[RFC2119] Bradner、S。、「要件レベルを示すためにRFCで使用するキーワード」、BCP 14、RFC 2119、DOI 10.17487 / RFC2119、1997年3月、<http://www.rfc-editor.org/info/ rfc2119>。

[RFC3253] Clemm, G., Amsden, J., Ellison, T., Kaler, C., and J. Whitehead, "Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning)", RFC 3253, DOI 10.17487/RFC3253, March 2002, <http://www.rfc-editor.org/info/rfc3253>.

[RFC3253] Clemm、G.、Amsden、J.、Ellison、T.、Kaler、C.、J。Whitehead、「Versioning Extensions to WebDAV(Web Distributed Authoring and Versioning)」、RFC 3253、DOI 10.17487 / RFC3253、 2002年3月、<http://www.rfc-editor.org/info/rfc3253>。

[RFC4791] Daboo, C., Desruisseaux, B., and L. Dusseault, "Calendaring Extensions to WebDAV (CalDAV)", RFC 4791, DOI 10.17487/RFC4791, March 2007, <http://www.rfc-editor.org/info/rfc4791>.

[RFC4791] Daboo、C.、Desruisseaux、B。、およびL. Dusseault、「Calendaring Extensions to WebDAV(CalDAV)」、RFC 4791、DOI 10.17487 / RFC4791、2007年3月、<http://www.rfc-editor。 org / info / rfc4791>。

[RFC4918] Dusseault, L., Ed., "HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)", RFC 4918, DOI 10.17487/RFC4918, June 2007, <http://www.rfc-editor.org/info/rfc4918>.

[RFC4918] Dusseault、L.、Ed。、「Web Distributed Authoring and Versioning(WebDAV)のHTTP拡張機能」、RFC 4918、DOI 10.17487 / RFC4918、2007年6月、<http://www.rfc-editor.org/info / rfc4918>。

[RFC5689] Daboo, C., "Extended MKCOL for Web Distributed Authoring and Versioning (WebDAV)", RFC 5689, DOI 10.17487/RFC5689, September 2009, <http://www.rfc-editor.org/info/rfc5689>.

[RFC5689] Daboo、C。、「Web Distributed Authoring and Versioning(WebDAV)の拡張MKCOL」、RFC 5689、DOI 10.17487 / RFC5689、2009年9月、<http://www.rfc-editor.org/info/rfc5689> 。

[RFC5789] Dusseault, L. and J. Snell, "PATCH Method for HTTP", RFC 5789, DOI 10.17487/RFC5789, March 2010, <http://www.rfc-editor.org/info/rfc5789>.

[RFC5789] Dusseault、L.およびJ. Snell、「PATCH Method for HTTP」、RFC 5789、DOI 10.17487 / RFC5789、2010年3月、<http://www.rfc-editor.org/info/rfc5789>。

[RFC5995] Reschke, J., "Using POST to Add Members to Web Distributed Authoring and Versioning (WebDAV) Collections", RFC 5995, DOI 10.17487/RFC5995, September 2010, <http://www.rfc-editor.org/info/rfc5995>.

[RFC5995] Reschke、J。、「POSTを使用してWeb分散オーサリングとバージョン管理(WebDAV)コレクションにメンバーを追加する」、RFC 5995、DOI 10.17487 / RFC5995、2010年9月、<http://www.rfc-editor.org/ info / rfc5995>。

[RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content", RFC 7231, DOI 10.17487/RFC7231, June 2014, <http://www.rfc-editor.org/info/rfc7231>.

[RFC7231]フィールディング、R。、エド。およびJ. Reschke編、「Hypertext Transfer Protocol(HTTP / 1.1):Semantics and Content」、RFC 7231、DOI 10.17487 / RFC7231、2014年6月、<http://www.rfc-editor.org/info/rfc7231 >。

[RFC7232] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests", RFC 7232, DOI 10.17487/RFC7232, June 2014, <http://www.rfc-editor.org/info/rfc7232>.

[RFC7232]フィールディング、R。、エド。およびJ. Reschke編、「Hypertext Transfer Protocol(HTTP / 1.1):Conditional Requests」、RFC 7232、DOI 10.17487 / RFC7232、2014年6月、<http://www.rfc-editor.org/info/rfc7232> 。

[RFC7240] Snell, J., "Prefer Header for HTTP", RFC 7240, DOI 10.17487/RFC7240, June 2014, <http://www.rfc-editor.org/info/rfc7240>.

[RFC7240] Snell、J。、「Prefer Header for HTTP」、RFC 7240、DOI 10.17487 / RFC7240、2014年6月、<http://www.rfc-editor.org/info/rfc7240>。

7.2. Informative References
7.2. 参考引用

[MSDN.aa493854] Microsoft Developer Network, "PROPPATCH Method", June 2006, <http://msdn.microsoft.com/en-us/library/aa493854.aspx>.

[MSDN.aa493854] Microsoft Developer Network、「PROPPATCHメソッド」、2006年6月、<http://msdn.microsoft.com/en-us/library/aa493854.aspx>。

[MSDN.aa563501] Microsoft Developer Network, "Brief Header", June 2006, <http://msdn.microsoft.com/en-us/library/aa563501.aspx>.

[MSDN.aa563501] Microsoft Developer Network、「Brief Header」、2006年6月、<http://msdn.microsoft.com/en-us/library/aa563501.aspx>。

[MSDN.aa563950] Microsoft Developer Network, "Depth Header", June 2006, <http://msdn.microsoft.com/en-us/library/aa563950.aspx>.

[MSDN.aa563950] Microsoft Developer Network、「Depth Header」、2006年6月、<http://msdn.microsoft.com/en-us/library/aa563950.aspx>。

[MSDN.aa580336] Microsoft Developer Network, "PROPFIND Method", June 2006, <http://msdn.microsoft.com/en-us/library/aa580336.aspx>.

[MSDN.aa580336] Microsoft Developer Network、「PROPFINDメソッド」、2006年6月、<http://msdn.microsoft.com/en-us/library/aa580336.aspx>。

[RFC3744] Clemm, G., Reschke, J., Sedlar, E., and J. Whitehead, "Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol", RFC 3744, DOI 10.17487/RFC3744, May 2004, <http://www.rfc-editor.org/info/rfc3744>.

[RFC3744] Clemm、G.、Reschke、J.、Sedlar、E。、およびJ. Whitehead、「Web Distributed Authoring and Versioning(WebDAV)Access Control Protocol」、RFC 3744、DOI 10.17487 / RFC3744、2004年5月、<http ://www.rfc-editor.org/info/rfc3744>。

[RFC6352] Daboo, C., "CardDAV: vCard Extensions to Web Distributed Authoring and Versioning (WebDAV)", RFC 6352, DOI 10.17487/RFC6352, August 2011, <http://www.rfc-editor.org/info/rfc6352>.

[RFC6352] Daboo、C。、「CardDAV:vCard Extensions to Web Distributed Authoring and Versioning(WebDAV)」、RFC 6352、DOI 10.17487 / RFC6352、2011年8月、<http://www.rfc-editor.org/info/ rfc6352>。

[RFC6578] Daboo, C. and A. Quillaud, "Collection Synchronization for Web Distributed Authoring and Versioning (WebDAV)", RFC 6578, DOI 10.17487/RFC6578, March 2012, <http://www.rfc-editor.org/info/rfc6578>.

[RFC6578] Daboo、C。およびA. Quillaud、「Web Synchronization for Web Distributed Authoring and Versioning(WebDAV)」、RFC 6578、DOI 10.17487 / RFC6578、2012年3月、<http://www.rfc-editor.org/ info / rfc6578>。

[RFC6638] Daboo, C. and B. Desruisseaux, "Scheduling Extensions to CalDAV", RFC 6638, DOI 10.17487/RFC6638, June 2012, <http://www.rfc-editor.org/info/rfc6638>.

[RFC6638] Daboo、C。およびB. Desruisseaux、「Scheduling Extensions to CalDAV」、RFC 6638、DOI 10.17487 / RFC6638、June 2012、<http://www.rfc-editor.org/info/rfc6638>。

Appendix A. The Brief and Extended Depth Header Fields
付録A.ブリーフおよび拡張深度ヘッダーフィールド

This document is based heavily on the Brief [MSDN.aa563501] and extended Depth [MSDN.aa563950] header fields. The behaviors described in Sections 2.1 and 2.2 are identical to those provided by the Brief header field when used with the PROPFIND [MSDN.aa580336] and PROPPATCH [MSDN.aa493854] methods, respectively. The behavior described in Section 4 is identical to that provided by the "1,noroot" [MSDN.aa563950] and "infinity,noroot" [MSDN.aa563950] Depth header field values.

このドキュメントは、ブリーフ[MSDN.aa563501]および拡張深度[MSDN.aa563950]ヘッダーフィールドに大きく基づいています。セクション2.1と2.2で説明されている動作は、PROPFIND [MSDN.aa580336]メソッドとPROPPATCH [MSDN.aa493854]メソッドでそれぞれ使用した場合のブリーフヘッダーフィールドによって提供される動作と同じです。セクション4で説明されている動作は、「1、noroot」[MSDN.aa563950]および「infinity、noroot」[MSDN.aa563950]深度ヘッダーフィールド値によって提供される動作と同じです。

Client and server implementations that already support the Brief header field can add support for the "return=minimal" preference with nominal effort.

既にBriefヘッダーフィールドをサポートしているクライアントとサーバーの実装は、わずかな労力で "return = minimal"設定のサポートを追加できます。

If a server supporting the Prefer header field receives both the Brief and Prefer header fields in a request, clients can expect the server to ignore the Brief header field and only use the Prefer header field preferences.

PreferヘッダーフィールドをサポートするサーバーがリクエストでBriefとPreferヘッダーフィールドの両方を受信した場合、クライアントはサーバーがBriefヘッダーフィールドを無視し、Preferヘッダーフィールド設定のみを使用することを期待できます。

Appendix B. Examples
付録B.例
B.1. PROPFIND
B.1. PROPFIND
B.1.1. Typical PROPFIND Request/Response with Depth:1
B.1.1. 深さのある典型的なPROPFIND要求/応答:1

This example tries to fetch one known and one unknown property from child resources.

この例では、子リソースから1つの既知のプロパティと1つの未知のプロパティをフェッチしようとします。

   >> Request <<
        
   PROPFIND /container/ HTTP/1.1
   Host: webdav.example.com
   Content-Type: application/xml; charset=utf-8
   Content-Length: 189
   Depth: 1
        
   <?xml version="1.0" encoding="UTF-8"?>
   <D:propfind xmlns:D="DAV:" xmlns:X="http://ns.example.com/foobar/">
     <D:prop>
       <D:resourcetype/>
       <X:foobar/>
     </D:prop>
   </D:propfind>
        
   >> Response <<
        
   HTTP/1.1 207 Multi-Status
   Content-Type: application/xml; charset=utf-8
   Content-Length: 1722
        
   <?xml version="1.0" encoding="utf-8"?>
   <D:multistatus xmlns:D="DAV:"
                  xmlns:X="http://ns.example.com/foobar/">
     <D:response>
       <D:href>/container/</D:href>
       <D:propstat>
         <D:prop>
           <D:resourcetype>
             <D:collection/>
           </D:resourcetype>
         </D:prop>
         <D:status>HTTP/1.1 200 OK</D:status>
       </D:propstat>
       <D:propstat>
         <D:prop>
           <X:foobar/>
         </D:prop>
         <D:status>HTTP/1.1 404 Not Found</D:status>
       </D:propstat>
     </D:response>
     <D:response>
       <D:href>/container/work/</D:href>
       <D:propstat>
         <D:prop>
           <D:resourcetype>
             <D:collection/>
           </D:resourcetype>
         </D:prop>
         <D:status>HTTP/1.1 200 OK</D:status>
       </D:propstat>
       <D:propstat>
         <D:prop>
           <X:foobar/>
         </D:prop>
         <D:status>HTTP/1.1 404 Not Found</D:status>
       </D:propstat>
     </D:response>
     <D:response>
       <D:href>/container/home/</D:href>
       <D:propstat>
         <D:prop>
           <D:resourcetype>
             <D:collection/>
           </D:resourcetype>
         </D:prop>
        
         <D:status>HTTP/1.1 200 OK</D:status>
       </D:propstat>
       <D:propstat>
         <D:prop>
           <X:foobar/>
         </D:prop>
         <D:status>HTTP/1.1 404 Not Found</D:status>
       </D:propstat>
     </D:response>
     <D:response>
       <D:href>/container/foo.txt</D:href>
       <D:propstat>
         <D:prop>
           <D:resourcetype/>
         </D:prop>
         <D:status>HTTP/1.1 200 OK</D:status>
       </D:propstat>
       <D:propstat>
         <D:prop>
           <X:foobar/>
         </D:prop>
         <D:status>HTTP/1.1 404 Not Found</D:status>
       </D:propstat>
     </D:response>
   </D:multistatus>
        
B.1.2. Minimal PROPFIND Request/Response with Depth:1
B.1.2. 奥行きのある最小のPROPFIND要求/応答:1

This example tries to fetch one known and one unknown property from child resources only.

この例では、既知のプロパティと不明なプロパティの1つを子リソースからのみ取得しようとします。

   >> Request <<
        
   PROPFIND /container/ HTTP/1.1
   Host: webdav.example.com
   Content-Type: application/xml; charset=utf-8
   Content-Length: 189
   Depth: 1
   Prefer: return=minimal, depth-noroot
        
   <?xml version="1.0" encoding="UTF-8"?>
   <D:propfind xmlns:D="DAV:" xmlns:X="http://ns.example.com/foobar/">
     <D:prop>
       <D:resourcetype/>
       <X:foobar/>
     </D:prop>
   </D:propfind>
        
   >> Response <<
        
   HTTP/1.1 207 Multi-Status
   Content-Type: application/xml; charset=utf-8
   Content-Length: 837
   Preference-Applied: return=minimal, depth-noroot
        
   <?xml version="1.0" encoding="utf-8"?>
   <D:multistatus xmlns:D="DAV:">
     <D:response>
       <D:href>/container/work/</D:href>
       <D:propstat>
         <D:prop>
           <D:resourcetype>
             <D:collection/>
           </D:resourcetype>
         </D:prop>
         <D:status>HTTP/1.1 200 OK</D:status>
       </D:propstat>
     </D:response>
     <D:response>
       <D:href>/container/home/</D:href>
       <D:propstat>
         <D:prop>
           <D:resourcetype>
             <D:collection/>
           </D:resourcetype>
         </D:prop>
         <D:status>HTTP/1.1 200 OK</D:status>
       </D:propstat>
     </D:response>
     <D:response>
       <D:href>/container/foo.txt</D:href>
       <D:propstat>
         <D:prop>
           <D:resourcetype/>
         </D:prop>
         <D:status>HTTP/1.1 200 OK</D:status>
       </D:propstat>
     </D:response>
   </D:multistatus>
        

B.1.3. Minimal PROPFIND Request/Response with an Empty DAV:propstat Element

B.1.3. 空のDAV:propstat要素を使用した最小限のPROPFIND要求/応答

This example tries to fetch an unknown property from a collection.

この例では、コレクションから不明なプロパティをフェッチしようとしています。

   >> Request <<
        
   PROPFIND /container/ HTTP/1.1
   Host: webdav.example.com
   Content-Type: application/xml; charset=utf-8
   Content-Length: 166
   Prefer: return=minimal
        
   <?xml version="1.0" encoding="UTF-8"?>
   <D:propfind xmlns:D="DAV:" xmlns:X="http://ns.example.com/foobar/">
     <D:prop>
       <X:foobar/>
     </D:prop>
   </D:propfind>
        
   >> Response <<
        
   HTTP/1.1 207 Multi-Status
   Content-Type: application/xml; charset=utf-8
   Content-Length: 255
   Preference-Applied: return=minimal
        
   <?xml version="1.0" encoding="utf-8"?>
   <D:multistatus xmlns:D="DAV:">
     <D:response>
       <D:href>/container/</D:href>
       <D:propstat>
         <D:prop/>
         <D:status>HTTP/1.1 200 OK</D:status>
       </D:propstat>
     </D:response>
   </D:multistatus>
        
B.2. REPORT
B.2. 報告する
B.2.1. Typical REPORT Request/Response
B.2.1. 典型的なREPORTリクエスト/レスポンス

This example tries to fetch an unknown property from several resources via the DAV:expand-property [RFC3253] REPORT type.

この例では、DAV:expand-property [RFC3253] REPORTタイプを介して、いくつかのリソースから不明なプロパティをフェッチしようとします。

   >> Request <<
        
   REPORT /dav/principals/ HTTP/1.1
   Host: webdav.example.com
   Content-type: text/xml; charset=utf-8
   Content-length: 847
        
   <?xml version="1.0" encoding="utf-8"?>
   <D:expand-property xmlns:D="DAV:">
     <D:property name="current-user-principal">
       <D:property name="resourcetype"/>
       <D:property name="displayname"/>
       <D:property name="foobar"
                   namespace="http://ns.example.com/foobar"/>
       <D:property name="calendar-home-set"
                   namespace="urn:ietf:params:xml:ns:caldav">
         <D:property name="resourcetype"/>
         <D:property name="foobar"
                     namespace="http://ns.example.com/foobar"/>
       </D:property>
       <D:property name="addressbook-home-set"
                   namespace="urn:ietf:params:xml:ns:carddav">
         <D:property name="resourcetype"/>
         <D:property name="foobar"
                     namespace="http://ns.example.com/foobar"/>
       </D:property>
     </D:property>
   </D:expand-property>
        
   >> Response <<
        
   HTTP/1.1 207 Multi-Status
   Content-Type: application/xml; charset=utf-8
   Content-Length: 2664
        
   <?xml version="1.0" encoding="utf-8"?>
   <D:multistatus xmlns:D="DAV:"
                  xmlns:C="urn:ietf:params:xml:ns:caldav"
                  xmlns:R="urn:ietf:params:xml:ns:carddav"
                  xmlns:X="http://ns.example.com/foobar">
     <D:response>
       <D:href>/dav/principals/</D:href>
       <D:propstat>
         <D:prop>
           <D:current-user-principal>
             <D:response>
               <D:href>/dav/principals/user/ken/</D:href>
               <D:propstat>
                 <D:prop>
                   <D:resourcetype>
                     <D:principal/>
        
                   </D:resourcetype>
                   <D:displayname>ken</D:displayname>
                   <C:calendar-home-set>
                     <D:response>
                       <D:href>/dav/calendars/user/ken/</D:href>
                       <D:propstat>
                         <D:prop>
                           <D:resourcetype>
                             <D:collection/>
                           </D:resourcetype>
                         </D:prop>
                         <D:status>HTTP/1.1 200 OK</D:status>
                       </D:propstat>
                       <D:propstat>
                         <D:prop>
                           <X:foobar/>
                         </D:prop>
                         <D:status>HTTP/1.1 404 Not Found</D:status>
                       </D:propstat>
                     </D:response>
                   </C:calendar-home-set>
                   <R:addressbook-home-set>
                     <D:response>
                       <D:href>/dav/addressbooks/user/ken/</D:href>
                       <D:propstat>
                         <D:prop>
                           <D:resourcetype>
                             <D:collection/>
                           </D:resourcetype>
                         </D:prop>
                         <D:status>HTTP/1.1 200 OK</D:status>
                       </D:propstat>
                       <D:propstat>
                         <D:prop>
                           <X:foobar/>
                         </D:prop>
                         <D:status>HTTP/1.1 404 Not Found</D:status>
                       </D:propstat>
                     </D:response>
                   </R:addressbook-home-set>
                 </D:prop>
                 <D:status>HTTP/1.1 200 OK</D:status>
               </D:propstat>
               <D:propstat>
                 <D:prop>
                   <X:foobar/>
                 </D:prop>
                 <D:status>HTTP/1.1 404 Not Found</D:status>
        
               </D:propstat>
             </D:response>
           </D:current-user-principal>
         </D:prop>
         <D:status>HTTP/1.1 200 OK</D:status>
       </D:propstat>
     </D:response>
   </D:multistatus>
        
B.2.2. Minimal REPORT Request/Response
B.2.2. 最小限のREPORT要求/応答

This example tries to fetch an unknown property from several resources via the DAV:expand-property [RFC3253] REPORT type.

この例では、DAV:expand-property [RFC3253] REPORTタイプを介して、いくつかのリソースから不明なプロパティをフェッチしようとします。

   >> Request <<
        
   REPORT /dav/principals/ HTTP/1.1
   Host: webdav.example.com
   Content-Type: application/xml; charset=utf-8
   Content-Length: 847
   Prefer: return=minimal
        
   <?xml version="1.0" encoding="utf-8"?>
   <D:expand-property xmlns:D="DAV:">
     <D:property name="current-user-principal">
       <D:property name="resourcetype"/>
       <D:property name="displayname"/>
       <D:property name="foobar"
                   namespace="http://ns.example.com/foobar"/>
       <D:property name="calendar-home-set"
                   namespace="urn:ietf:params:xml:ns:caldav">
         <D:property name="resourcetype"/>
         <D:property name="foobar"
                     namespace="http://ns.example.com/foobar"/>
       </D:property>
       <D:property name="addressbook-home-set"
                   namespace="urn:ietf:params:xml:ns:carddav">
         <D:property name="resourcetype"/>
         <D:property name="foobar"
                     namespace="http://ns.example.com/foobar"/>
       </D:property>
     </D:property>
   </D:expand-property>
        
   >> Response <<
        
   HTTP/1.1 207 Multi-Status
   Content-Type: application/xml; charset=utf-8
   Content-Length: 1998
   Preference-Applied: return=minimal
        
   <?xml version="1.0" encoding="utf-8"?>
   <D:multistatus xmlns:D="DAV:"
                  xmlns:C="urn:ietf:params:xml:ns:caldav"
                  xmlns:R="urn:ietf:params:xml:ns:carddav"
                  xmlns:X="http://ns.example.com/foobar">
     <D:response>
       <D:href>/dav/principals/</D:href>
       <D:propstat>
         <D:prop>
           <D:current-user-principal>
             <D:response>
               <D:href>/dav/principals/user/ken/</D:href>
               <D:propstat>
                 <D:prop>
                   <D:resourcetype>
                     <D:principal/>
                   </D:resourcetype>
                   <D:displayname>ken</D:displayname>
                   <C:calendar-home-set>
                     <D:response>
                       <D:href>/dav/calendars/user/ken/</D:href>
                       <D:propstat>
                         <D:prop>
                           <D:resourcetype>
                             <D:collection/>
                           </D:resourcetype>
                         </D:prop>
                         <D:status>HTTP/1.1 200 OK</D:status>
                       </D:propstat>
                     </D:response>
                   </C:calendar-home-set>
                   <R:addressbook-home-set>
                     <D:response>
                       <D:href>/dav/addressbooks/user/ken/</D:href>
                       <D:propstat>
                         <D:prop>
                           <D:resourcetype>
                             <D:collection/>
                           </D:resourcetype>
                         </D:prop>
                         <D:status>HTTP/1.1 200 OK</D:status>
                       </D:propstat>
                     </D:response>
                   </R:addressbook-home-set>
                 </D:prop>
        
                 <D:status>HTTP/1.1 200 OK</D:status>
               </D:propstat>
             </D:response>
           </D:current-user-principal>
         </D:prop>
         <D:status>HTTP/1.1 200 OK</D:status>
       </D:propstat>
     </D:response>
   </D:multistatus>
        
B.3. PROPPATCH
B.3. プロパッチ
B.3.1. Typical PROPPATCH Request/Response
B.3.1. 典型的なPROPPATCHリクエスト/レスポンス
   >> Request <<
        
   PROPPATCH /container/ HTTP/1.1
   Host: webdav.example.com
   Content-Type: application/xml; charset=utf-8
   Content-Length: 199
        
   <?xml version="1.0" encoding="utf-8"?>
   <D:propertyupdate xmlns:D="DAV:">
     <D:set>
       <D:prop>
         <D:displayname>My Container</D:displayname>
       </D:prop>
     </D:set>
   </D:propertyupdate>
        
   >> Response <<
        
   HTTP/1.1 207 Multi-Status
   Content-Type: application/xml; charset=utf-8
   Content-Length: 297
        
   <?xml version="1.0" encoding="utf-8"?>
   <D:multistatus xmlns:D="DAV:">
     <D:response>
       <D:href>/container/</D:href>
       <D:propstat>
         <D:prop>
           <D:displayname/>
         </D:prop>
         <D:status>HTTP/1.1 200 OK</D:status>
       </D:propstat>
     </D:response>
   </D:multistatus>
        
B.3.2. Minimal PROPPATCH Request/Response
B.3.2. 最小限のPROPPATCH要求/応答
   >> Request <<
        
   PROPPATCH /container/ HTTP/1.1
   Host: webdav.example.com
   Content-Type: application/xml; charset=utf-8
   Content-Length: 199
   Prefer: return=minimal
        
   <?xml version="1.0" encoding="utf-8"?>
   <D:propertyupdate xmlns:D="DAV:">
     <D:set>
       <D:prop>
         <D:displayname>My Container</D:displayname>
       </D:prop>
     </D:set>
   </D:propertyupdate>
        
   >> Response <<
        

HTTP/1.1 200 OK Content-Length: 0 Preference-Applied: return=minimal

HTTP / 1.1 200 OK Content-Length:0 Preference-Applied:return = minimal

B.4. MKCOL
B.4. MKCOL
B.4.1. Verbose MKCOL Request/Response
B.4.1. 詳細なMKCOL要求/応答
   >> Request <<
        
   MKCOL /container/ HTTP/1.1
   Host: webdav.example.com
   Content-Type: application/xml; charset=utf-8
   Content-Length: 181
        
   <?xml version="1.0" encoding="utf-8"?>
   <D:mkcol xmlns:D="DAV:">
     <D:set>
       <D:prop>
         <D:displayname>My Container</D:displayname>
       </D:prop>
     </D:set>
   </D:mkcol>
        
   >> Response <<
        
   HTTP/1.1 201 Created
   Cache-Control: no-cache
   Content-Type: application/xml; charset=utf-8
   Content-Length: 224
        
   <?xml version="1.0" encoding="utf-8"?>
   <D:mkcol-response xmlns:D="DAV:">
     <D:propstat>
       <D:prop>
         <D:displayname/>
       </D:prop>
       <D:status>HTTP/1.1 200 OK</D:status>
     </D:propstat>
   </D:mkcol-response>
        
B.4.2. Minimal MKCOL Request/Response
B.4.2. 最小限のMKCOL要求/応答
   >> Request <<
        
   MKCOL /container/ HTTP/1.1
   Host: webdav.example.com
   Content-Type: application/xml; charset=utf-8
   Content-Length: 181
   Prefer: return=minimal
        
   <?xml version="1.0" encoding="utf-8"?>
   <D:mkcol xmlns:D="DAV:">
     <D:set>
       <D:prop>
         <D:displayname>My Container</D:displayname>
       </D:prop>
     </D:set>
   </D:mkcol>
        
   >> Response <<
        

HTTP/1.1 201 Created Cache-Control: no-cache Content-Length: 0 Preference-Applied: return=minimal

HTTP / 1.1 201作成されたCache-Control:no-cache Content-Length:0 Preference-Applied:return = minimal

B.5. POST
B.5. 役職
B.5.1. Typical Resource Creation and Retrieval via POST + GET
B.5.1. POST + GETによる典型的なリソースの作成と取得

Note that this request is not conditional because by using the POST [RFC5995] method, the client lets the server choose the resource URI, thereby guaranteeing that it will not modify an existing resource.

POST [RFC5995]メソッドを使用することにより、クライアントはサーバーにリソースURIを選択させ、既存のリソースを変更しないことを保証するため、このリクエストは条件付きではないことに注意してください。

   >> Request <<
        
   POST /container/work;add-member/ HTTP/1.1
   Host: caldav.example.com
   Content-Type: text/calendar; charset=utf-8
   Content-Length: 521
        
   BEGIN:VCALENDAR
   VERSION:2.0
   PRODID:-//Example Corp.//CalDAV Client//EN
   BEGIN:VEVENT
   UID:CD87465FA
   SEQUENCE:0
   DTSTAMP:20120602T185254Z
   DTSTART:20120602T160000Z
   DTEND:20120602T170000Z
   TRANSP:OPAQUE
   SUMMARY:Lunch
   ORGANIZER;CN="Ken Murchison":mailto:murch@example.com
   ATTENDEE;CN="Ken Murchison";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:
    mailto:murch@example.com
   ATTENDEE;CN="John Doe";CUTYPE=INDIVIDUAL;PARTSTAT
    =NEEDS-ACTION;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:jdoe@
    example.com
   END:VEVENT
   END:VCALENDAR
        
   >> Response <<
        
   HTTP/1.1 201 Created
   Location: /container/work/abc.ics
   Content-Length: 0
        

Note that the server did not include any validator header fields (e.g., ETag) in the response, signaling that the created representation differs from the representation sent in the body of the request. The client has to send a separate GET request to retrieve the current representation:

サーバーは応答にバリデーターヘッダーフィールド(ETagなど)を含めなかったため、作成された表現がリクエストの本文で送信された表現と異なることを通知しています。クライアントは、現在の表現を取得するために個別のGETリクエストを送信する必要があります。

   >> Request <<
        
   GET /container/work/abc.ics HTTP/1.1
   Host: caldav.example.com
        
   >> Response <<
        
   HTTP/1.1 200 OK
   Content-Type: text/calendar; charset=utf-8
   Content-Length: 541
   ETag: "nahduyejc"
   Schedule-Tag: "jfd84hgbcn"
        
   BEGIN:VCALENDAR
   VERSION:2.0
   PRODID:-//Example Corp.//CalDAV Server//EN
   BEGIN:VEVENT
   UID:CD87465FA
   SEQUENCE:0
   DTSTAMP:20120602T185300Z
   DTSTART:20120602T160000Z
   DTEND:20120602T170000Z
   TRANSP:OPAQUE
   SUMMARY:Lunch
   ORGANIZER;CN="Ken Murchison":mailto:murch@example.com
   ATTENDEE;CN="Ken Murchison";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:
    mailto:murch@example.com
   ATTENDEE;CN="John Doe";CUTYPE=INDIVIDUAL;PARTSTAT
    =NEEDS-ACTION;ROLE=REQ-PARTICIPANT;RSVP=TRUE;SCHEDULE-STATUS=
    1.2:mailto:jdoe@example.com
   END:VEVENT
   END:VCALENDAR
        
B.5.2. Streamlined Resource Creation and Retrieval via POST
B.5.2. POSTによる効率的なリソースの作成と取得

Note that this request is not conditional because by using the POST [RFC5995] method, the client lets the server choose the resource URI, thereby guaranteeing that it will not modify an existing resource.

POST [RFC5995]メソッドを使用することにより、クライアントはサーバーにリソースURIを選択させ、既存のリソースを変更しないことを保証するため、このリクエストは条件付きではないことに注意してください。

   >> Request <<
        
   POST /container/work;add-member/ HTTP/1.1
   Host: caldav.example.com
   Content-Type: text/calendar; charset=utf-8
   Content-Length: 521
   Prefer: return=representation
        
   BEGIN:VCALENDAR
   VERSION:2.0
   PRODID:-//Example Corp.//CalDAV Client//EN
   BEGIN:VEVENT
   UID:CD87465FA
   SEQUENCE:0
   DTSTAMP:20120602T185254Z
   DTSTART:20120602T160000Z
   DTEND:20120602T170000Z
   TRANSP:OPAQUE
   SUMMARY:Lunch
   ORGANIZER;CN="Ken Murchison":mailto:murch@example.com
   ATTENDEE;CN="Ken Murchison";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:
    mailto:murch@example.com
   ATTENDEE;CN="John Doe";CUTYPE=INDIVIDUAL;PARTSTAT
    =NEEDS-ACTION;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:jdoe@
    example.com
   END:VEVENT
   END:VCALENDAR
        
   >> Response <<
        
   HTTP/1.1 201 Created
   Location: /container/work/abc.ics
   Content-Type: text/calendar; charset=utf-8
   Content-Length: 541
   Content-Location: /container/work/abc.ics
   ETag: "nahduyejc"
   Schedule-Tag: "jfd84hgbcn"
   Preference-Applied: return=representation
        
   BEGIN:VCALENDAR
   VERSION:2.0
   PRODID:-//Example Corp.//CalDAV Server//EN
   BEGIN:VEVENT
   UID:CD87465FA
   SEQUENCE:0
   DTSTAMP:20120602T185300Z
   DTSTART:20120602T160000Z
   DTEND:20120602T170000Z
   TRANSP:OPAQUE
   SUMMARY:Lunch
   ORGANIZER;CN="Ken Murchison":mailto:murch@example.com
   ATTENDEE;CN="Ken Murchison";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:
    mailto:murch@example.com
   ATTENDEE;CN="John Doe";CUTYPE=INDIVIDUAL;PARTSTAT
    =NEEDS-ACTION;ROLE=REQ-PARTICIPANT;RSVP=TRUE;SCHEDULE-STATUS=
    1.2:mailto:jdoe@example.com
   END:VEVENT
   END:VCALENDAR
        
B.6. PUT
B.6. 置く

B.6.1. Typical Conditional Resource Update Failure and Retrieval via PUT + GET

B.6.1. PUT + GETによる一般的な条件付きリソース更新の失敗と取得

   >> Request <<
        
   PUT /container/motd.txt HTTP/1.1
   Host: dav.example.com
   Content-Type: text/plain
   Content-Length: 69
   If-Match: "asd973"
        

Either write something worth reading or do something worth writing.

読む価値のある何かを書くか、書く価値のある何かをしてください。

   >> Response <<
        

HTTP/1.1 412 Precondition Failed Content-Length: 0

HTTP / 1.1 412前提条件が失敗したコンテンツの長さ:0

The resource has been modified by another user agent (ETag mismatch); therefore, the client has to send a separate GET request to retrieve the current representation:

リソースが別のユーザーエージェントによって変更されました(ETagの不一致)。したがって、クライアントは現在の表現を取得するために別のGETリクエストを送信する必要があります。

   >> Request <<
        
   GET /container/motd.txt HTTP/1.1
   Host: dav.example.com
        
   >> Response <<
        
   HTTP/1.1 200 OK
   Content-Type: text/plain
   Content-Length: 52
   ETag: "789sdas"
        

An investment in knowledge pays the best interest.

知識への投資は最高の利益をもたらします。

B.6.2. Streamlined Conditional Resource Update Failure and Retrieval via PUT

B.6.2. PUTによる合理化された条件付きリソース更新の失敗と取得

   >> Request <<
        
   PUT /container/motd.txt HTTP/1.1
   Host: dav.example.com
   Content-Type: text/plain
   Content-Length: 69
   If-Match: "asd973"
   Prefer: return=representation
        

Either write something worth reading or do something worth writing.

読む価値のある何かを書くか、書く価値のある何かをしてください。

   >> Response <<
        
   HTTP/1.1 412 Precondition Failed
   Content-Type: text/plain
   Content-Length: 52
   Content-Location: /container/motd.txt
   ETag: "789sdas"
   Preference-Applied: return=representation
        

An investment in knowledge pays the best interest.

知識への投資は最高の利益をもたらします。

Acknowledgements

謝辞

The author would like to thank the following individuals for contributing their ideas and support for writing this specification: Cyrus Daboo, Helge Hess, Andrew McMillan, Arnaud Quillaud, and Julian Reschke.

著者は、この仕様を書くためのアイデアとサポートを提供してくれたCyrus Daboo、Helge Hess、Andrew McMillan、Arnaud Quillaud、およびJulian Reschkeの各個人に感謝します。

The author would also like to thank the Calendaring and Scheduling Consortium for advice with this specification and for organizing interoperability testing events to help refine it.

著者はまた、この仕様に関するアドバイス、および仕様の改善に役立つ相互運用性テストイベントを編成してくれたCalendaring and Scheduling Consortiumに感謝します。

Author's Address

著者のアドレス

Kenneth Murchison Carnegie Mellon University 5000 Forbes Avenue Pittsburgh, PA 15213 United States of America

ケネスマーチソンカーネギーメロン大学5000フォーブスアベニューピッツバーグ、ペンシルバニア州15213アメリカ合衆国

   Phone: +1-412-268-1982
   Email: murch@andrew.cmu.edu