draft-ietf-httpbis-safe-method-w-body-11.txt   draft-ietf-httpbis-safe-method-w-body-latest.txt 
HTTP J. Reschke HTTP Working Group J. Reschke
Internet-Draft greenbytes Internet-Draft greenbytes
Intended status: Standards Track J.M. Snell Intended status: Standards Track J.M. Snell
Expires: 20 November 2025 Cloudflare Expires: November 20, 2025 Cloudflare
M. Bishop M. Bishop
Akamai Akamai
19 May 2025 May 19, 2025
The HTTP QUERY Method The HTTP QUERY Method
draft-ietf-httpbis-safe-method-w-body-11 draft-ietf-httpbis-safe-method-w-body-latest
Abstract Abstract
This specification defines a new HTTP method, QUERY, as a safe, This specification defines a new HTTP method, QUERY, as a safe,
idempotent request method that can carry request content. idempotent request method that can carry request content.
Editorial Note Editorial Note
This note is to be removed before publishing as an RFC. This note is to be removed before publishing as an RFC.
Discussion of this draft takes place on the HTTP working group Discussion of this draft takes place on the HTTP working group
mailing list (ietf-http-wg@w3.org), which is archived at mailing list (ietf-http-wg@w3.org), which is archived at
https://lists.w3.org/Archives/Public/ietf-http-wg/. <https://lists.w3.org/Archives/Public/ietf-http-wg/>.
Working Group information can be found at https://httpwg.org/; source Working Group information can be found at <https://httpwg.org/>;
code and issues list for this draft can be found at source code and issues list for this draft can be found at
https://github.com/httpwg/http-extensions/labels/query-method. <https://github.com/httpwg/http-extensions/labels/query-method>.
The changes in this draft are summarized in Appendix B.11. The changes in this draft are summarized in Appendix B.11.
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 https://datatracker.ietf.org/drafts/current/. Drafts is at https://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 20 November 2025. This Internet-Draft will expire on November 20, 2025.
Copyright Notice Copyright Notice
Copyright (c) 2025 IETF Trust and the persons identified as the Copyright (c) 2025 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 (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License. provided without warranty as described in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Notational Conventions . . . . . . . . . . . . . . . . . 5 1.2. Notational Conventions . . . . . . . . . . . . . . . . . 5
2. QUERY . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. QUERY . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1. Content-Location and Location Fields . . . . . . . . . . 6 2.1. Content-Location and Location Fields . . . . . . . . . . 6
2.2. Redirection . . . . . . . . . . . . . . . . . . . . . . . 6 2.2. Redirection . . . . . . . . . . . . . . . . . . . . . . . 6
2.3. Conditional Requests . . . . . . . . . . . . . . . . . . 7 2.3. Conditional Requests . . . . . . . . . . . . . . . . . . 6
2.4. Caching . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4. Caching . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5. Range Requests . . . . . . . . . . . . . . . . . . . . . 7 2.5. Range Requests . . . . . . . . . . . . . . . . . . . . . 7
3. The "Accept-Query" Header Field . . . . . . . . . . . . . . . 7 3. The "Accept-Query" Header Field . . . . . . . . . . . . . . . 7
4. Security Considerations . . . . . . . . . . . . . . . . . . . 8 4. Security Considerations . . . . . . . . . . . . . . . . . . . 8
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
5.1. Registration of QUERY method . . . . . . . . . . . . . . 9 5.1. Registration of QUERY method . . . . . . . . . . . . . . 9
5.2. Registration of Accept-Query field . . . . . . . . . . . 9 5.2. Registration of Accept-Query field . . . . . . . . . . . 9
6. Normative References . . . . . . . . . . . . . . . . . . . . 9 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
7. Informative References . . . . . . . . . . . . . . . . . . . 10 6.1. Normative References . . . . . . . . . . . . . . . . . . 9
6.2. Informative References . . . . . . . . . . . . . . . . . 10
Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 11 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 11
A.1. Simple Query . . . . . . . . . . . . . . . . . . . . . . 11 A.1. Simple Query . . . . . . . . . . . . . . . . . . . . . . 11
A.2. Discovery of QUERY support . . . . . . . . . . . . . . . 12 A.2. Discovery of QUERY support . . . . . . . . . . . . . . . 11
A.3. Discovery of QUERY Formats . . . . . . . . . . . . . . . 12 A.3. Discovery of QUERY Formats . . . . . . . . . . . . . . . 12
A.4. Content-Location, Location, and Indirect Responses . . . 13 A.4. Content-Location, Location, and Indirect Responses . . . 12
A.4.1. Using Content-Location . . . . . . . . . . . . . . . 13 A.4.1. Using Content-Location . . . . . . . . . . . . . . . 13
A.4.2. Using Location . . . . . . . . . . . . . . . . . . . 14 A.4.2. Using Location . . . . . . . . . . . . . . . . . . . 14
A.4.3. Indirect Responses . . . . . . . . . . . . . . . . . 15 A.4.3. Indirect Responses . . . . . . . . . . . . . . . . . 15
A.5. More Query Formats . . . . . . . . . . . . . . . . . . . 15 A.5. More Query Formats . . . . . . . . . . . . . . . . . . . 15
Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 18 Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 18
B.1. Since draft-ietf-httpbis-safe-method-w-body-00 . . . . . 18 B.1. Since draft-ietf-httpbis-safe-method-w-body-00 . . . . . 18
B.2. Since draft-ietf-httpbis-safe-method-w-body-01 . . . . . 19 B.2. Since draft-ietf-httpbis-safe-method-w-body-01 . . . . . 19
B.3. Since draft-ietf-httpbis-safe-method-w-body-02 . . . . . 19 B.3. Since draft-ietf-httpbis-safe-method-w-body-02 . . . . . 19
B.4. Since draft-ietf-httpbis-safe-method-w-body-03 . . . . . 19 B.4. Since draft-ietf-httpbis-safe-method-w-body-03 . . . . . 19
B.5. Since draft-ietf-httpbis-safe-method-w-body-04 . . . . . 19 B.5. Since draft-ietf-httpbis-safe-method-w-body-04 . . . . . 19
skipping to change at page 3, line 29 skipping to change at page 3, line 30
Most often, this is desirable when the data conveyed in a request is Most often, this is desirable when the data conveyed in a request is
too voluminous to be encoded into the request's URI. For example, too voluminous to be encoded into the request's URI. For example,
this is a common query pattern: this is a common query pattern:
GET /feed?q=foo&limit=10&sort=-published HTTP/1.1 GET /feed?q=foo&limit=10&sort=-published HTTP/1.1
Host: example.org Host: example.org
However, for a query with parameters that are complex or large, However, for a query with parameters that are complex or large,
encoding it in the request URI may not be the best option because encoding it in the request URI may not be the best option because
* often size limits are not known ahead of time because a request o often size limits are not known ahead of time because a request
can pass through many uncoordinated systems (but note that can pass through many uncoordinated systems (but note that
Section 4.1 of [HTTP] recommends senders and recipients to support Section 4.1 of [HTTP] recommends senders and recipients to support
at least 8000 octets), at least 8000 octets),
* expressing certain kinds of data in the target URI is inefficient o expressing certain kinds of data in the target URI is inefficient
because of the overhead of encoding that data into a valid URI, because of the overhead of encoding that data into a valid URI,
and and
* encoding queries directly into the request URI effectively casts o encoding queries directly into the request URI effectively casts
every possible combination of query inputs as distinct resources. every possible combination of query inputs as distinct resources.
As an alternative to using GET, many implementations make use of the As an alternative to using GET, many implementations make use of the
HTTP POST method to perform queries, as illustrated in the example HTTP POST method to perform queries, as illustrated in the example
below. In this case, the input to the query operation is passed as below. In this case, the input to the query operation is passed as
the request content as opposed to using the request URI's query the request content as opposed to using the request URI's query
component. component.
A typical use of HTTP POST for requesting a query is: A typical use of HTTP POST for requesting a query is:
skipping to change at page 4, line 32 skipping to change at page 4, line 32
q=foo&limit=10&sort=-published q=foo&limit=10&sort=-published
As with POST, the input to the query operation is passed as the As with POST, the input to the query operation is passed as the
content of the request rather than as part of the request URI. content of the request rather than as part of the request URI.
Unlike POST, however, the method is explicitly safe and idempotent, Unlike POST, however, the method is explicitly safe and idempotent,
allowing functions like caching and automatic retries to operate. allowing functions like caching and automatic retries to operate.
Summarizing: Summarizing:
+============+============+==================+==================+ +------------+------------+------------------+------------------+
| | GET | QUERY | POST | | | GET | QUERY | POST |
+============+============+==================+==================+
| Safe | yes | yes | potentially no |
+------------+------------+------------------+------------------+ +------------+------------+------------------+------------------+
| Safe | yes | yes | potentially no |
| Idempotent | yes | yes | potentially no | | Idempotent | yes | yes | potentially no |
+------------+------------+------------------+------------------+
| Cacheable | yes | yes | yes, but only | | Cacheable | yes | yes | yes, but only |
| | | | for future GET | | | | | for future GET |
| | | | or HEAD requests | | | | | or HEAD requests |
+------------+------------+------------------+------------------+
| Content | "no | expected | expected | | Content | "no | expected | expected |
| (body) | defined | (semantics per | (semantics per | | (body) | defined | (semantics per | (semantics per |
| | semantics" | target resource) | target resource) | | | semantics" | target resource) | target resource) |
+------------+------------+------------------+------------------+ +------------+------------+------------------+------------------+
Table 1: Summary of relevant method properties Table 1: Summary of relevant method properties
1.1. Terminology 1.1. Terminology
This document uses terminology defined in Section 3 of [HTTP]. This document uses terminology defined in Section 3 of [HTTP].
skipping to change at page 7, line 23 skipping to change at page 7, line 16
The response to a QUERY method is cacheable; a cache MAY use it to The response to a QUERY method is cacheable; a cache MAY use it to
satisfy subsequent QUERY requests as per Section 4 of satisfy subsequent QUERY requests as per Section 4 of
[HTTP-CACHING]). [HTTP-CACHING]).
The cache key for a QUERY request (see Section 2 of [HTTP-CACHING]) The cache key for a QUERY request (see Section 2 of [HTTP-CACHING])
MUST incorporate the request content. When doing so, caches SHOULD MUST incorporate the request content. When doing so, caches SHOULD
first normalize request content to remove semantically insignificant first normalize request content to remove semantically insignificant
differences, thereby improving cache efficiency, by: differences, thereby improving cache efficiency, by:
* Removing content encoding(s) (Section 8.4 of [HTTP]). o Removing content encoding(s) (Section 8.4 of [HTTP]).
* Normalizing based upon knowledge of format conventions, as o Normalizing based upon knowledge of format conventions, as
indicated by any media subtype suffix in the request's Content- indicated by any media subtype suffix in the request's Content-
Type field (e.g., "+json", see Section 4.2.8 of [RFC6838]). Type field (e.g., "+json", see Section 4.2.8 of [RFC6838]).
* Normalizing based upon knowledge of the semantics of the content o Normalizing based upon knowledge of the semantics of the content
itself, as indicated by the request's Content-Type field. itself, as indicated by the request's Content-Type field.
Note that any such normalization is performed solely for the purpose Note that any such normalization is performed solely for the purpose
of generating a cache key; it does not change the request itself. of generating a cache key; it does not change the request itself.
2.5. Range Requests 2.5. Range Requests
The semantics of Range Requests for QUERY are identical to those for The semantics of Range Requests for QUERY are identical to those for
GET, as defined in Section 14 of [HTTP]. GET, as defined in Section 14 of [HTTP].
skipping to change at page 9, line 23 skipping to change at page 9, line 18
(https://fetch.spec.whatwg.org/#methods)" in [FETCH]). (https://fetch.spec.whatwg.org/#methods)" in [FETCH]).
5. IANA Considerations 5. IANA Considerations
5.1. Registration of QUERY method 5.1. Registration of QUERY method
IANA is requested to add the QUERY method to the HTTP Method Registry IANA is requested to add the QUERY method to the HTTP Method Registry
at <http://www.iana.org/assignments/http-methods> (see Section 16.3.1 at <http://www.iana.org/assignments/http-methods> (see Section 16.3.1
of [HTTP]). of [HTTP]).
+=============+======+============+===============+ +-------------+------+------------+---------------+
| Method Name | Safe | Idempotent | Specification | | Method Name | Safe | Idempotent | Specification |
+=============+======+============+===============+ +-------------+------+------------+---------------+
| QUERY | Yes | Yes | Section 2 | | QUERY | Yes | Yes | Section 2 |
+-------------+------+------------+---------------+ +-------------+------+------------+---------------+
Table 2 Table 2
5.2. Registration of Accept-Query field 5.2. Registration of Accept-Query field
IANA is requested to add the Accept-Query field to the HTTP Field IANA is requested to add the Accept-Query field to the HTTP Field
Name Registry at <https://www.iana.org/assignments/http-fields> (see Name Registry at <https://www.iana.org/assignments/http-fields> (see
Section 16.1.1 of [HTTP]). Section 16.1.1 of [HTTP]).
+==============+===========+============+================+==========+ +--------------+-----------+------------+----------------+----------+
| Field Name | Status | Structured | Reference | Comments | | Field Name | Status | Structured | Reference | Comments |
| | | Type | | | | | | Type | | |
+==============+===========+============+================+==========+ +--------------+-----------+------------+----------------+----------+
| Accept-Query | permanent | List | Section 3 | | | Accept-Query | permanent | List | Section 3 | |
| | | | of this | | | | | | of this | |
| | | | document. | | | | | | document. | |
+--------------+-----------+------------+----------------+----------+ +--------------+-----------+------------+----------------+----------+
Table 3 Table 3
6. Normative References 6. References
6.1. Normative References
[HTTP] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
Ed., "HTTP Semantics", STD 97, RFC 9110,
DOI 10.17487/RFC9110, June 2022,
<https://www.rfc-editor.org/info/rfc9110>.
[HTTP-CACHING]
Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
Ed., "HTTP Caching", STD 98, RFC 9111,
DOI 10.17487/RFC9111, June 2022,
<https://www.rfc-editor.org/info/rfc9111>.
[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, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[HTTP] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
Ed., "HTTP Semantics", STD 97, RFC 9110, June 2022,
<https://www.rfc-editor.org/rfc/rfc9110>.
[HTTP-CACHING]
Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
Ed., "HTTP Caching", STD 98, RFC 9111, June 2022,
<https://www.rfc-editor.org/rfc/rfc9111>.
[STRUCTURED-FIELDS] [STRUCTURED-FIELDS]
Nottingham, M. and P-H. Kamp, "Structured Field Values for Nottingham, M. and P-H. Kamp, "Structured Field Values for
HTTP", RFC 9651, September 2024, HTTP", RFC 9651, DOI 10.17487/RFC9651, September 2024,
<https://www.rfc-editor.org/rfc/rfc9651>. <https://www.rfc-editor.org/info/rfc9651>.
7. Informative References 6.2. Informative References
[FETCH] WHATWG, "FETCH", <https://fetch.spec.whatwg.org>. [FETCH] WHATWG, "FETCH", <https://fetch.spec.whatwg.org>.
[RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type
Specifications and Registration Procedures", BCP 13, Specifications and Registration Procedures", BCP 13,
RFC 6838, DOI 10.17487/RFC6838, January 2013, RFC 6838, DOI 10.17487/RFC6838, January 2013,
<https://www.rfc-editor.org/info/rfc6838>. <https://www.rfc-editor.org/info/rfc6838>.
[RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data [RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data
Interchange Format", STD 90, RFC 8259, Interchange Format", STD 90, RFC 8259,
skipping to change at page 11, line 6 skipping to change at page 10, line 47
<https://www.rfc-editor.org/info/rfc8259>. <https://www.rfc-editor.org/info/rfc8259>.
[RFC9535] Gössner, S., Ed., Normington, G., Ed., and C. Bormann, [RFC9535] Gössner, S., Ed., Normington, G., Ed., and C. Bormann,
Ed., "JSONPath: Query Expressions for JSON", RFC 9535, Ed., "JSONPath: Query Expressions for JSON", RFC 9535,
DOI 10.17487/RFC9535, February 2024, DOI 10.17487/RFC9535, February 2024,
<https://www.rfc-editor.org/info/rfc9535>. <https://www.rfc-editor.org/info/rfc9535>.
[URL] WHATWG, "URL", <https://url.spec.whatwg.org>. [URL] WHATWG, "URL", <https://url.spec.whatwg.org>.
[XSLT] Kay, M., "XSL Transformations (XSLT) Version 3.0", W3C [XSLT] Kay, M., "XSL Transformations (XSLT) Version 3.0", W3C
Recommendation REC-xslt-30-20170608, 8 June 2017, Recommendation REC-xslt-30-20170608, June 8, 2017,
<https://www.w3.org/TR/2017/REC-xslt-30-20170608/>. <https://www.w3.org/TR/2017/REC-xslt-30-20170608/>.
Latest version available at Latest version available at
https://www.w3.org/TR/xslt-30/. <https://www.w3.org/TR/xslt-30/>.
Appendix A. Examples Appendix A. Examples
The examples below are for illustrative purposes only; if one needs The examples below are for illustrative purposes only; if one needs
to send queries that are actually this short, it is likely better to to send queries that are actually this short, it is likely better to
use GET. use GET.
The media type used in most examples is "application/x-www-form- The media type used in most examples is "application/x-www-form-
urlencoded" (as used in POST requests from browser user clients, urlencoded" (as used in POST requests from browser user clients,
defined in "application/x-www-form-urlencoded defined in "application/x-www-form-urlencoded
skipping to change at page 18, line 41 skipping to change at page 18, line 41
"RFC9656","RFC9110","RFC2324","RFC2549","RFC6797","RFC2549", "RFC9656","RFC9110","RFC2324","RFC2549","RFC6797","RFC2549",
"RFC8894" "RFC8894"
] ]
Appendix B. Change Log Appendix B. Change Log
This section is to be removed before publishing as an RFC. This section is to be removed before publishing as an RFC.
B.1. Since draft-ietf-httpbis-safe-method-w-body-00 B.1. Since draft-ietf-httpbis-safe-method-w-body-00
* Use "example/query" media type instead of undefined "text/query" o Use "example/query" media type instead of undefined "text/query"
(https://github.com/httpwg/http-extensions/issues/1450) (<https://github.com/httpwg/http-extensions/issues/1450>)
* In Section 3, adjust the grammar to just define the field value o In Section 3, adjust the grammar to just define the field value
(https://github.com/httpwg/http-extensions/issues/1470) (<https://github.com/httpwg/http-extensions/issues/1470>)
* Update to latest HTTP core spec, and adjust terminology o Update to latest HTTP core spec, and adjust terminology
accordingly (https://github.com/httpwg/http-extensions/ accordingly (<https://github.com/httpwg/http-extensions/
issues/1473) issues/1473>)
* Reference RFC 8174 and markup bcp14 terms o Reference RFC 8174 and markup bcp14 terms
(https://github.com/httpwg/http-extensions/issues/1497) (<https://github.com/httpwg/http-extensions/issues/1497>)
* Update HTTP reference (https://github.com/httpwg/http-extensions/ o Update HTTP reference (<https://github.com/httpwg/http-extensions/
issues/1524) issues/1524>)
* Relax restriction of generic XML media type in request content o Relax restriction of generic XML media type in request content
(https://github.com/httpwg/http-extensions/issues/1535) (<https://github.com/httpwg/http-extensions/issues/1535>)
B.2. Since draft-ietf-httpbis-safe-method-w-body-01 B.2. Since draft-ietf-httpbis-safe-method-w-body-01
* Add minimal description of cacheability o Add minimal description of cacheability
(https://github.com/httpwg/http-extensions/issues/1552) (<https://github.com/httpwg/http-extensions/issues/1552>)
* Use "QUERY" as method name (https://github.com/httpwg/http- o Use "QUERY" as method name (<https://github.com/httpwg/http-
extensions/issues/1614) extensions/issues/1614>)
* Update HTTP reference (https://github.com/httpwg/http-extensions/ o Update HTTP reference (<https://github.com/httpwg/http-extensions/
issues/1669) issues/1669>)
B.3. Since draft-ietf-httpbis-safe-method-w-body-02 B.3. Since draft-ietf-httpbis-safe-method-w-body-02
* In Section 3, slightly rephrase statement about significance of o In Section 3, slightly rephrase statement about significance of
ordering (https://github.com/httpwg/http-extensions/issues/1896) ordering (<https://github.com/httpwg/http-extensions/issues/1896>)
* Throughout: use "content" instead of "payload" or "body" o Throughout: use "content" instead of "payload" or "body"
(https://github.com/httpwg/http-extensions/issues/1915) (<https://github.com/httpwg/http-extensions/issues/1915>)
* Updated references (https://github.com/httpwg/http-extensions/ o Updated references (<https://github.com/httpwg/http-extensions/
issues/2157) issues/2157>)
B.4. Since draft-ietf-httpbis-safe-method-w-body-03 B.4. Since draft-ietf-httpbis-safe-method-w-body-03
* In Section 3, clarify scope (https://github.com/httpwg/http- o In Section 3, clarify scope (<https://github.com/httpwg/http-
extensions/issues/1913) extensions/issues/1913>)
B.5. Since draft-ietf-httpbis-safe-method-w-body-04 B.5. Since draft-ietf-httpbis-safe-method-w-body-04
* Describe role of Content-Location and Location fields o Describe role of Content-Location and Location fields
(https://github.com/httpwg/http-extensions/issues/1745) (<https://github.com/httpwg/http-extensions/issues/1745>)
* Added Mike Bishop as author (https://github.com/httpwg/http- o Added Mike Bishop as author (<https://github.com/httpwg/http-
extensions/issues/2837) extensions/issues/2837>)
* Use "target URI" instead of "effective request URI" o Use "target URI" instead of "effective request URI"
(https://github.com/httpwg/http-extensions/issues/2883) (<https://github.com/httpwg/http-extensions/issues/2883>)
B.6. Since draft-ietf-httpbis-safe-method-w-body-05 B.6. Since draft-ietf-httpbis-safe-method-w-body-05
* Updated language and examples about redirects and method rewriting o Updated language and examples about redirects and method rewriting
(https://github.com/httpwg/http-extensions/issues/1917) (<https://github.com/httpwg/http-extensions/issues/1917>)
* Add QUERY example to introduction (https://github.com/httpwg/http- o Add QUERY example to introduction (<https://github.com/httpwg/
extensions/issues/2171) http-extensions/issues/2171>)
* Update "Sensitive information in QUERY URLs" o Update "Sensitive information in QUERY URLs"
(https://github.com/httpwg/http-extensions/issues/2853) (<https://github.com/httpwg/http-extensions/issues/2853>)
* Field registration for "Accept-Query" (https://github.com/httpwg/ o Field registration for "Accept-Query" (<https://github.com/httpwg/
http-extensions/issues/2903) http-extensions/issues/2903>)
B.7. Since draft-ietf-httpbis-safe-method-w-body-06 B.7. Since draft-ietf-httpbis-safe-method-w-body-06
* Improve language about sensitive information in URIs o Improve language about sensitive information in URIs
(https://github.com/httpwg/http-extensions/issues/1895) (<https://github.com/httpwg/http-extensions/issues/1895>)
* Guidance about what's possible with GET wrt URI length o Guidance about what's possible with GET wrt URI length
(https://github.com/httpwg/http-extensions/issues/1914) (<https://github.com/httpwg/http-extensions/issues/1914>)
* Clarified description of conditional queries o Clarified description of conditional queries
(https://github.com/httpwg/http-extensions/issues/1917) (<https://github.com/httpwg/http-extensions/issues/1917>)
* Editorial changes to Introduction (ack Will Hawkins, o Editorial changes to Introduction (ack Will Hawkins,
https://github.com/httpwg/http-extensions/pull/2859) <https://github.com/httpwg/http-extensions/pull/2859>)
* Added Security Consideration with respect to Normalization o Added Security Consideration with respect to Normalization
(https://github.com/httpwg/http-extensions/issues/2896) (<https://github.com/httpwg/http-extensions/issues/2896>)
* Added CORS considerations (https://github.com/httpwg/http- o Added CORS considerations (<https://github.com/httpwg/http-
extensions/issues/2898) extensions/issues/2898>)
* Make Accept-Query a Structured Field (https://github.com/httpwg/ o Make Accept-Query a Structured Field (<https://github.com/httpwg/
http-extensions/issues/2934) http-extensions/issues/2934>)
* SQL media type is application/sql (RFC6922) o SQL media type is application/sql (RFC6922)
(https://github.com/httpwg/http-extensions/issues/2936) (<https://github.com/httpwg/http-extensions/issues/2936>)
* Added overview table to introduction (https://github.com/httpwg/ o Added overview table to introduction (<https://github.com/httpwg/
http-extensions/issues/2951) http-extensions/issues/2951>)
* Reference HTTP spec for terminology (https://github.com/httpwg/ o Reference HTTP spec for terminology (<https://github.com/httpwg/
http-extensions/issues/2953) http-extensions/issues/2953>)
* Moved BCP14 related text into subsection o Moved BCP14 related text into subsection
(https://github.com/httpwg/http-extensions/issues/2954) (<https://github.com/httpwg/http-extensions/issues/2954>)
* Move examples into index (https://github.com/httpwg/http- o Move examples into index (<https://github.com/httpwg/http-
extensions/issues/2957) extensions/issues/2957>)
B.8. Since draft-ietf-httpbis-safe-method-w-body-07 B.8. Since draft-ietf-httpbis-safe-method-w-body-07
* Examples Section revised (https://github.com/httpwg/http- o Examples Section revised (<https://github.com/httpwg/http-
extensions/issues/1906) extensions/issues/1906>)
* Discuss Range Requests (https://github.com/httpwg/http-extensions/ o Discuss Range Requests (<https://github.com/httpwg/http-
issues/2979) extensions/issues/2979>)
B.9. Since draft-ietf-httpbis-safe-method-w-body-08 B.9. Since draft-ietf-httpbis-safe-method-w-body-08
* Mention the role of the query part of the request URI o Mention the role of the query part of the request URI
(https://github.com/httpwg/http-extensions/issues/3004) (<https://github.com/httpwg/http-extensions/issues/3004>)
* Avoid term 'query parameters' (https://github.com/httpwg/http- o Avoid term 'query parameters' (<https://github.com/httpwg/http-
extensions/issues/3019) extensions/issues/3019>)
* Add missing references, fixed terminology o Add missing references, fixed terminology
(https://github.com/httpwg/http-extensions/issues/3021) (<https://github.com/httpwg/http-extensions/issues/3021>)
* Add Acknowledgements/Contributors sections; moved Ashok to o Add Acknowledgements/Contributors sections; moved Ashok to
Contributors (https://github.com/httpwg/http-extensions/ Contributors (<https://github.com/httpwg/http-extensions/
issues/3029) issues/3029>)
* Hopefully more clarity wrt query content vs URI query component o Hopefully more clarity wrt query content vs URI query component
(https://github.com/httpwg/http-extensions/issues/3059) (<https://github.com/httpwg/http-extensions/issues/3059>)
B.10. Since draft-ietf-httpbis-safe-method-w-body-09 B.10. Since draft-ietf-httpbis-safe-method-w-body-09
* Clarify cacheability of POST (https://github.com/httpwg/http- o Clarify cacheability of POST (<https://github.com/httpwg/http-
extensions/issues/3068) extensions/issues/3068>)
* Rephrase text that suggests a media type definition can override o Rephrase text that suggests a media type definition can override
URI semantics (https://github.com/httpwg/http-extensions/ URI semantics (<https://github.com/httpwg/http-extensions/
issues/3069) issues/3069>)
* Restrict description of Content-Location and Location semantics to o Restrict description of Content-Location and Location semantics to
2xx responses (https://github.com/httpwg/http-extensions/ 2xx responses (<https://github.com/httpwg/http-extensions/
issues/3070) issues/3070>)
* Slightly rephrase semantics for Content-Location o Slightly rephrase semantics for Content-Location
(https://github.com/httpwg/http-extensions/issues/3071) (<https://github.com/httpwg/http-extensions/issues/3071>)
B.11. Since draft-ietf-httpbis-safe-method-w-body-10 B.11. Since draft-ietf-httpbis-safe-method-w-body-10
* Editorial nits (https://github.com/httpwg/http-extensions/ o Editorial nits (<https://github.com/httpwg/http-extensions/
pull/3080, ack martinthomson) pull/3080>, ack martinthomson)
* Fix references in Appendix A.3 (https://github.com/httpwg/http- o Fix references in Appendix A.3 (<https://github.com/httpwg/http-
extensions/pull/3090, ack Rahul Gupta) extensions/pull/3090>, ack Rahul Gupta)
* Update James' affiliation (https://github.com/httpwg/http- o Update James' affiliation (<https://github.com/httpwg/http-
extensions/pull/3094) extensions/pull/3094>)
* Review references to HTTP (https://github.com/httpwg/http- o Review references to HTTP (<https://github.com/httpwg/http-
extensions/pull/3097) extensions/pull/3097>)
* Address most Rahul Gupta's additional feedback o Address most Rahul Gupta's additional feedback
(https://github.com/httpwg/http-extensions/pull/3101) (<https://github.com/httpwg/http-extensions/pull/3101>)
Acknowledgements Acknowledgements
We thank all members of the HTTP Working Group for ideas, reviews, We thank all members of the HTTP Working Group for ideas, reviews,
and feedback. and feedback.
The following individuals deserve special recognition: Carsten The following individuals deserve special recognition: Carsten
Bormann, Mark Nottingham, Martin Thomson, Michael Thornburgh, Roberto Bormann, Mark Nottingham, Martin Thomson, Michael Thornburgh, Roberto
Polli, Roy Fielding, and Will Hawkins. Polli, Roy Fielding, and Will Hawkins.
 End of changes. 81 change blocks. 
145 lines changed or deleted 147 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/