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/ |