| draft-ietf-httpbis-p4-conditional-24.txt |  | draft-ietf-httpbis-p4-conditional-25.txt |
--- | --- | --- | --- | ---
| HTTPbis Working Group R. Fielding, Ed. |  | HTTPbis Working Group R. Fielding, Ed. |
| Internet-Draft Adobe |  | Internet-Draft Adobe |
| Obsoletes: 2616 (if approved) J. Reschke, Ed. |  | Obsoletes: 2616 (if approved) J. Reschke, Ed. |
| Intended status: Standards Track greenbytes |  | Intended status: Standards Track greenbytes |
| Expires: March 29, 2014 September 25, 2013 |  | Expires: May 21, 2014 November 17, 2013 |
| Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests |  | Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests |
| draft-ietf-httpbis-p4-conditional-24 |  | draft-ietf-httpbis-p4-conditional-25 |
| Abstract |  | Abstract |
| The Hypertext Transfer Protocol (HTTP) is an application-level |  | The Hypertext Transfer Protocol (HTTP) is an application-level |
| protocol for distributed, collaborative, hypertext information |  | protocol for distributed, collaborative, hypertext information |
| systems. This document defines HTTP/1.1 conditional requests, |  | systems. This document defines HTTP/1.1 conditional requests, |
| including metadata header fields for indicating state changes, |  | including metadata header fields for indicating state changes, |
| request header fields for making preconditions on such state, and |  | request header fields for making preconditions on such state, and |
| rules for constructing the responses to a conditional request when |  | rules for constructing the responses to a conditional request when |
| one or more preconditions evaluate to false. |  | one or more preconditions evaluate to false. |
| skipping to change at page 1, line 33 |  | skipping to change at page 1, line 33 |
| Discussion of this draft takes place on the HTTPBIS working group |  | Discussion of this draft takes place on the HTTPBIS working group |
| mailing list (ietf-http-wg@w3.org), which is archived at |  | mailing list (ietf-http-wg@w3.org), which is archived at |
| <http://lists.w3.org/Archives/Public/ietf-http-wg/>. |  | <http://lists.w3.org/Archives/Public/ietf-http-wg/>. |
| The current issues list is at |  | The current issues list is at |
| <http://tools.ietf.org/wg/httpbis/trac/report/3> and related |  | <http://tools.ietf.org/wg/httpbis/trac/report/3> and related |
| documents (including fancy diffs) can be found at |  | documents (including fancy diffs) can be found at |
| <http://tools.ietf.org/wg/httpbis/>. |  | <http://tools.ietf.org/wg/httpbis/>. |
| The changes in this draft are summarized in Appendix D.5. |  | The changes in this draft are summarized in Appendix D.1. |
| Status of This Memo |  | Status of This Memo |
| This Internet-Draft is submitted in full conformance with the |  | This Internet-Draft is submitted in full conformance with the |
| provisions of BCP 78 and BCP 79. |  | provisions of BCP 78 and BCP 79. |
| Internet-Drafts are working documents of the Internet Engineering |  | Internet-Drafts are working documents of the Internet Engineering |
| Task Force (IETF). Note that other groups may also distribute |  | Task Force (IETF). Note that other groups may also distribute |
| working documents as Internet-Drafts. The list of current Internet- |  | working documents as Internet-Drafts. The list of current Internet- |
| Drafts is at http://datatracker.ietf.org/drafts/current/. |  | Drafts is at http://datatracker.ietf.org/drafts/current/. |
| Internet-Drafts are draft documents valid for a maximum of six months |  | Internet-Drafts are draft documents valid for a maximum of six months |
| and may be updated, replaced, or obsoleted by other documents at any |  | and may be updated, replaced, or obsoleted by other documents at any |
| time. It is inappropriate to use Internet-Drafts as reference |  | time. It is inappropriate to use Internet-Drafts as reference |
| material or to cite them other than as "work in progress." |  | material or to cite them other than as "work in progress." |
| This Internet-Draft will expire on March 29, 2014. |  | This Internet-Draft will expire on May 21, 2014. |
| Copyright Notice |  | Copyright Notice |
| Copyright (c) 2013 IETF Trust and the persons identified as the |  | Copyright (c) 2013 IETF Trust and the persons identified as the |
| document authors. All rights reserved. |  | document authors. All rights reserved. |
| This document is subject to BCP 78 and the IETF Trust's Legal |  | This document is subject to BCP 78 and the IETF Trust's Legal |
| Provisions Relating to IETF Documents |  | Provisions Relating to IETF Documents |
| (http://trustee.ietf.org/license-info) in effect on the date of |  | (http://trustee.ietf.org/license-info) in effect on the date of |
| publication of this document. Please review these documents |  | publication of this document. Please review these documents |
| skipping to change at page 3, line 16 |  | skipping to change at page 3, line 16 |
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 |  | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 |
| 1.1. Conformance and Error Handling . . . . . . . . . . . . . . 4 |  | 1.1. Conformance and Error Handling . . . . . . . . . . . . . . 4 |
| 1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . 4 |  | 1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . 4 |
| 2. Validators . . . . . . . . . . . . . . . . . . . . . . . . . . 5 |  | 2. Validators . . . . . . . . . . . . . . . . . . . . . . . . . . 5 |
| 2.1. Weak versus Strong . . . . . . . . . . . . . . . . . . . . 5 |  | 2.1. Weak versus Strong . . . . . . . . . . . . . . . . . . . . 5 |
| 2.2. Last-Modified . . . . . . . . . . . . . . . . . . . . . . 7 |  | 2.2. Last-Modified . . . . . . . . . . . . . . . . . . . . . . 7 |
| 2.2.1. Generation . . . . . . . . . . . . . . . . . . . . . . 7 |  | 2.2.1. Generation . . . . . . . . . . . . . . . . . . . . . . 7 |
| 2.2.2. Comparison . . . . . . . . . . . . . . . . . . . . . . 8 |  | 2.2.2. Comparison . . . . . . . . . . . . . . . . . . . . . . 8 |
| 2.3. ETag . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 |  | 2.3. ETag . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 |
| 2.3.1. Generation . . . . . . . . . . . . . . . . . . . . . . 10 |  | 2.3.1. Generation . . . . . . . . . . . . . . . . . . . . . . 9 |
| 2.3.2. Comparison . . . . . . . . . . . . . . . . . . . . . . 10 |  | 2.3.2. Comparison . . . . . . . . . . . . . . . . . . . . . . 10 |
| 2.3.3. Example: Entity-tags Varying on Content-Negotiated |  | 2.3.3. Example: Entity-tags Varying on Content-Negotiated |
| Resources . . . . . . . . . . . . . . . . . . . . . . 11 |  | Resources . . . . . . . . . . . . . . . . . . . . . . 11 |
| 2.4. When to Use Entity-tags and Last-Modified Dates . . . . . 12 |  | 2.4. When to Use Entity-tags and Last-Modified Dates . . . . . 12 |
| 3. Precondition Header Fields . . . . . . . . . . . . . . . . . . 13 |  | 3. Precondition Header Fields . . . . . . . . . . . . . . . . . . 13 |
| 3.1. If-Match . . . . . . . . . . . . . . . . . . . . . . . . . 13 |  | 3.1. If-Match . . . . . . . . . . . . . . . . . . . . . . . . . 13 |
| 3.2. If-None-Match . . . . . . . . . . . . . . . . . . . . . . 14 |  | 3.2. If-None-Match . . . . . . . . . . . . . . . . . . . . . . 14 |
| 3.3. If-Modified-Since . . . . . . . . . . . . . . . . . . . . 15 |  | 3.3. If-Modified-Since . . . . . . . . . . . . . . . . . . . . 15 |
| 3.4. If-Unmodified-Since . . . . . . . . . . . . . . . . . . . 16 |  | 3.4. If-Unmodified-Since . . . . . . . . . . . . . . . . . . . 16 |
| 3.5. If-Range . . . . . . . . . . . . . . . . . . . . . . . . . 18 |  | 3.5. If-Range . . . . . . . . . . . . . . . . . . . . . . . . . 18 |
| skipping to change at page 3, line 45 |  | skipping to change at page 3, line 45 |
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 22 |  | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 22 |
| 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 22 |  | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 22 |
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 23 |  | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 23 |
| 10.1. Normative References . . . . . . . . . . . . . . . . . . . 23 |  | 10.1. Normative References . . . . . . . . . . . . . . . . . . . 23 |
| 10.2. Informative References . . . . . . . . . . . . . . . . . . 23 |  | 10.2. Informative References . . . . . . . . . . . . . . . . . . 23 |
| Appendix A. Changes from RFC 2616 . . . . . . . . . . . . . . . . 23 |  | Appendix A. Changes from RFC 2616 . . . . . . . . . . . . . . . . 23 |
| Appendix B. Imported ABNF . . . . . . . . . . . . . . . . . . . . 24 |  | Appendix B. Imported ABNF . . . . . . . . . . . . . . . . . . . . 24 |
| Appendix C. Collected ABNF . . . . . . . . . . . . . . . . . . . 24 |  | Appendix C. Collected ABNF . . . . . . . . . . . . . . . . . . . 24 |
| Appendix D. Change Log (to be removed by RFC Editor before |  | Appendix D. Change Log (to be removed by RFC Editor before |
| publication) . . . . . . . . . . . . . . . . . . . . 25 |  | publication) . . . . . . . . . . . . . . . . . . . . 25 |
| D.1. Since draft-ietf-httpbis-p4-conditional-19 . . . . . . . . 25 |  | D.1. Since draft-ietf-httpbis-p4-conditional-24 . . . . . . . . 25 |
| D.2. Since draft-ietf-httpbis-p4-conditional-20 . . . . . . . . 26 |  | Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 |
| D.3. Since draft-ietf-httpbis-p4-conditional-21 . . . . . . . . 26 |  |  |
| D.4. Since draft-ietf-httpbis-p4-conditional-22 . . . . . . . . 26 |  |  |
| D.5. Since draft-ietf-httpbis-p4-conditional-23 . . . . . . . . 27 |  |  |
| Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 |  |  |
| 1. Introduction |  | 1. Introduction |
| Conditional requests are HTTP requests [Part2] that include one or |  | Conditional requests are HTTP requests [Part2] that include one or |
| more header fields indicating a precondition to be tested before |  | more header fields indicating a precondition to be tested before |
| applying the method semantics to the target resource. This document |  | applying the method semantics to the target resource. This document |
| defines the HTTP/1.1 conditional request mechanisms in terms of the |  | defines the HTTP/1.1 conditional request mechanisms in terms of the |
| architecture, syntax notation, and conformance criteria defined in |  | architecture, syntax notation, and conformance criteria defined in |
| [Part1]. |  | [Part1]. |
| skipping to change at page 5, line 30 |  | skipping to change at page 5, line 30 |
| validators are ideal for comparisons but can be very difficult (and |  | validators are ideal for comparisons but can be very difficult (and |
| occasionally impossible) to generate efficiently. Rather than impose |  | occasionally impossible) to generate efficiently. Rather than impose |
| that all forms of resource adhere to the same strength of validator, |  | that all forms of resource adhere to the same strength of validator, |
| HTTP exposes the type of validator in use and imposes restrictions on |  | HTTP exposes the type of validator in use and imposes restrictions on |
| when weak validators can be used as preconditions. |  | when weak validators can be used as preconditions. |
| A "strong validator" is representation metadata that changes value |  | A "strong validator" is representation metadata that changes value |
| whenever a change occurs to the representation data that would be |  | whenever a change occurs to the representation data that would be |
| observable in the payload body of a 200 (OK) response to GET. |  | observable in the payload body of a 200 (OK) response to GET. |
| A strong validator might change for other reasons, such as when a |  | A strong validator might change for reasons other than a change to |
| semantically significant part of the representation metadata is |  | the representation data, such as when a semantically significant part |
| changed (e.g., Content-Type), but it is in the best interests of the |  | of the representation metadata is changed (e.g., Content-Type), but |
| origin server to only change the value when it is necessary to |  | it is in the best interests of the origin server to only change the |
| invalidate the stored responses held by remote caches and authoring |  | value when it is necessary to invalidate the stored responses held by |
| tools. A strong validator is unique across all representations of a |  | remote caches and authoring tools. |
| given resource, such that no two representations of that resource can |  |  |
| share the same validator unless their representation data is |  |  |
| identical. |  |  |
| Cache entries might persist for arbitrarily long periods, regardless |  | Cache entries might persist for arbitrarily long periods, regardless |
| of expiration times. Thus, a cache might attempt to validate an |  | of expiration times. Thus, a cache might attempt to validate an |
| entry using a validator that it obtained in the distant past. A |  | entry using a validator that it obtained in the distant past. A |
| strong validator is unique across all versions of all representations |  | strong validator is unique across all versions of all representations |
| associated with a particular resource over time. However, there is |  | associated with a particular resource over time. However, there is |
| no implication of uniqueness across representations of different |  | no implication of uniqueness across representations of different |
| resources (i.e., the same strong validator might be in use for |  | resources (i.e., the same strong validator might be in use for |
| representations of multiple resources at the same time and does not |  | representations of multiple resources at the same time and does not |
| imply that those representations are equivalent). |  | imply that those representations are equivalent). |
| skipping to change at page 12, line 5 |  | skipping to change at page 12, line 5 |
| HTTP/1.1 200 OK |  | HTTP/1.1 200 OK |
| Date: Fri, 26 Mar 2010 00:05:00 GMT |  | Date: Fri, 26 Mar 2010 00:05:00 GMT |
| ETag: "123-b" |  | ETag: "123-b" |
| Content-Length: 43 |  | Content-Length: 43 |
| Vary: Accept-Encoding |  | Vary: Accept-Encoding |
| Content-Type: text/plain |  | Content-Type: text/plain |
| Content-Encoding: gzip |  | Content-Encoding: gzip |
| ...binary data... |  | ...binary data... |
| Note: Content codings are a property of the representation, so |  | Note: Content codings are a property of the representation data, |
| therefore an entity-tag of an encoded representation has to be |  | so a strong entity-tag for a content-encoded representation has to |
| distinct from an unencoded representation to prevent conflicts |  | be distinct from the entity tag of an unencoded representation to |
| during cache updates and range requests. In contrast, transfer |  | prevent potential conflicts during cache updates and range |
| codings (Section 4 of [Part1]) apply only during message transfer |  | requests. In contrast, transfer codings (Section 4 of [Part1]) |
| and do not require distinct entity-tags. |  | apply only during message transfer and do not result in distinct |
|  |  | entity-tags. |
| 2.4. When to Use Entity-tags and Last-Modified Dates |  | 2.4. When to Use Entity-tags and Last-Modified Dates |
| We adopt a set of rules and recommendations for origin servers, |  | We adopt a set of rules and recommendations for origin servers, |
| clients, and caches regarding when various validator types ought to |  | clients, and caches regarding when various validator types ought to |
| be used, and for what purposes. |  | be used, and for what purposes. |
| In 200 (OK) responses to GET or HEAD, an origin server: |  | In 200 (OK) responses to GET or HEAD, an origin server: |
| o SHOULD send an entity-tag validator unless it is not feasible to |  | o SHOULD send an entity-tag validator unless it is not feasible to |
| skipping to change at page 23, line 8 |  | skipping to change at page 23, line 8 |
| 9. Acknowledgments |  | 9. Acknowledgments |
| See Section 10 of [Part1]. |  | See Section 10 of [Part1]. |
| 10. References |  | 10. References |
| 10.1. Normative References |  | 10.1. Normative References |
| [Part1] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer |  | [Part1] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer |
| Protocol (HTTP/1.1): Message Syntax and Routing", |  | Protocol (HTTP/1.1): Message Syntax and Routing", |
| draft-ietf-httpbis-p1-messaging-24 (work in progress), |  | draft-ietf-httpbis-p1-messaging-25 (work in progress), |
| September 2013. |  | November 2013. |
| [Part2] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer |  | [Part2] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer |
| Protocol (HTTP/1.1): Semantics and Content", |  | Protocol (HTTP/1.1): Semantics and Content", |
| draft-ietf-httpbis-p2-semantics-24 (work in progress), |  | draft-ietf-httpbis-p2-semantics-25 (work in progress), |
| September 2013. |  | November 2013. |
| [Part5] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed., |  | [Part5] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed., |
| "Hypertext Transfer Protocol (HTTP/1.1): Range Requests", |  | "Hypertext Transfer Protocol (HTTP/1.1): Range Requests", |
| draft-ietf-httpbis-p5-range-24 (work in progress), |  | draft-ietf-httpbis-p5-range-25 (work in progress), |
| September 2013. |  | November 2013. |
| [Part6] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, |  | [Part6] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, |
| Ed., "Hypertext Transfer Protocol (HTTP/1.1): Caching", |  | Ed., "Hypertext Transfer Protocol (HTTP/1.1): Caching", |
| draft-ietf-httpbis-p6-cache-24 (work in progress), |  | draft-ietf-httpbis-p6-cache-25 (work in progress), |
| September 2013. |  | November 2013. |
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate |  | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate |
| Requirement Levels", BCP 14, RFC 2119, March 1997. |  | Requirement Levels", BCP 14, RFC 2119, March 1997. |
| [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax |  | [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax |
| Specifications: ABNF", STD 68, RFC 5234, January 2008. |  | Specifications: ABNF", STD 68, RFC 5234, January 2008. |
| 10.2. Informative References |  | 10.2. Informative References |
| [BCP90] Klyne, G., Nottingham, M., and J. Mogul, "Registration |  | [BCP90] Klyne, G., Nottingham, M., and J. Mogul, "Registration |
| skipping to change at page 25, line 31 |  | skipping to change at page 25, line 31 |
| etagc = "!" / %x23-7E ; '#'-'~' |  | etagc = "!" / %x23-7E ; '#'-'~' |
| / obs-text |  | / obs-text |
| obs-text = <obs-text, defined in [Part1], Section 3.2.6> |  | obs-text = <obs-text, defined in [Part1], Section 3.2.6> |
| opaque-tag = DQUOTE *etagc DQUOTE |  | opaque-tag = DQUOTE *etagc DQUOTE |
| weak = %x57.2F ; W/ |  | weak = %x57.2F ; W/ |
| Appendix D. Change Log (to be removed by RFC Editor before publication) |  | Appendix D. Change Log (to be removed by RFC Editor before publication) |
| Changes up to the first Working Group Last Call draft are summarized |  | Changes up to the IETF Last Call draft are summarized in <http:// |
| in <http://tools.ietf.org/html/ |  | tools.ietf.org/html/draft-ietf-httpbis-p4-conditional-24#appendix-D>. |
| draft-ietf-httpbis-p4-conditional-19#appendix-C>. |  |  |
| D.1. Since draft-ietf-httpbis-p4-conditional-19 |  |  |
| Closed issues: |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/241>: "Need to |  |  |
| clarify eval order/interaction of conditional headers" |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/345>: "Required |  |  |
| headers on 304 and 206" |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/350>: "Optionality |  |  |
| of Conditional Request Support" |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/354>: "ETags and |  |  |
| Conditional Requests" |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/361>: "ABNF |  |  |
| requirements for recipients" |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/363>: "Rare cases" |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/365>: "Conditional |  |  |
| Request Security Considerations" |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/371>: "If-Modified- |  |  |
| Since lacks definition for method != GET" |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/372>: "refactor |  |  |
| conditional header field descriptions" |  |  |
| D.2. Since draft-ietf-httpbis-p4-conditional-20 |  |  |
| o Conformance criteria and considerations regarding error handling |  |  |
| are now defined in Part 1. |  |  |
| D.3. Since draft-ietf-httpbis-p4-conditional-21 |  |  |
| Closed issues: |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/96>: "Conditional |  |  |
| GET text" |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/350>: "Optionality |  |  |
| of Conditional Request Support" |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/384>: "unclear prose |  |  |
| in definition of 304" |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/401>: "ETags and |  |  |
| Conneg" |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/402>: "Comparison |  |  |
| function for If-Match and If-None-Match" |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/406>: "304 without |  |  |
| validator" |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/427>: "If-Match and |  |  |
| 428" |  |  |
| D.4. Since draft-ietf-httpbis-p4-conditional-22 |  |  |
| Closed issues: |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/436>: "explain list |  |  |
| expansion in ABNF appendices" |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/437>: "incorrect |  |  |
| example dates" |  |  |
| Partly resolved issues: |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/461>: "Editorial |  |  |
| suggestions" |  |  |
| D.5. Since draft-ietf-httpbis-p4-conditional-23 |  | D.1. Since draft-ietf-httpbis-p4-conditional-24 |
| Closed issues: |  | Closed issues: |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/455>: "PUT + If- |  | o <http://tools.ietf.org/wg/httpbis/trac/ticket/518>: "APPSDIR |
| Match over-constrained?" |  | review of draft-ietf-httpbis-p4-conditional-24" |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/479>: "MUSTs and |  |  |
| other feedback" |  |  |
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/495>: "p4 editorial |  |  |
| nits" |  |  |
| Index |  | Index |
| 3 |  | 3 |
| 304 Not Modified (status code) 18 |  | 304 Not Modified (status code) 18 |
| 4 |  | 4 |
| 412 Precondition Failed (status code) 18 |  | 412 Precondition Failed (status code) 18 |
| E |  | E |
End of changes. 15 change blocks.
| 121 lines changed or deleted |  | 33 lines changed or added |
This html diff was produced by rfcdiff 1.38. The latest version is available from http://tools.ietf.org/tools/rfcdiff/