draft-ietf-httpbis-safe-method-w-body-06.txt   draft-ietf-httpbis-safe-method-w-body-latest.txt 
HTTP Working Group J. Reschke HTTP Working Group J. Reschke
Internet-Draft greenbytes Internet-Draft greenbytes
Intended status: Standards Track A. Malhotra Intended status: Standards Track A. Malhotra
Expires: April 24, 2025 Expires: May 1, 2025
J.M. Snell J.M. Snell
M. Bishop M. Bishop
Akamai Akamai
October 21, 2024 October 28, 2024
The HTTP QUERY Method The HTTP QUERY Method
draft-ietf-httpbis-safe-method-w-body-06 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/>; Working Group information can be found at <https://httpwg.org/>;
source 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 A.6. The changes in this draft are summarized in Appendix A.7.
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 April 24, 2025. This Internet-Draft will expire on May 1, 2025.
Copyright Notice Copyright Notice
Copyright (c) 2024 IETF Trust and the persons identified as the Copyright (c) 2024 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
skipping to change at page 2, line 48 skipping to change at page 2, line 48
6.1. Registration of QUERY method . . . . . . . . . . . . . . 10 6.1. Registration of QUERY method . . . . . . . . . . . . . . 10
6.2. Registration of Accept-Query field . . . . . . . . . . . 10 6.2. Registration of Accept-Query field . . . . . . . . . . . 10
7. Normative References . . . . . . . . . . . . . . . . . . . . 11 7. Normative References . . . . . . . . . . . . . . . . . . . . 11
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 11 Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 11
A.1. Since draft-ietf-httpbis-safe-method-w-body-00 . . . . . 11 A.1. Since draft-ietf-httpbis-safe-method-w-body-00 . . . . . 11
A.2. Since draft-ietf-httpbis-safe-method-w-body-01 . . . . . 12 A.2. Since draft-ietf-httpbis-safe-method-w-body-01 . . . . . 12
A.3. Since draft-ietf-httpbis-safe-method-w-body-02 . . . . . 12 A.3. Since draft-ietf-httpbis-safe-method-w-body-02 . . . . . 12
A.4. Since draft-ietf-httpbis-safe-method-w-body-03 . . . . . 12 A.4. Since draft-ietf-httpbis-safe-method-w-body-03 . . . . . 12
A.5. Since draft-ietf-httpbis-safe-method-w-body-04 . . . . . 12 A.5. Since draft-ietf-httpbis-safe-method-w-body-04 . . . . . 12
A.6. Since draft-ietf-httpbis-safe-method-w-body-05 . . . . . 13 A.6. Since draft-ietf-httpbis-safe-method-w-body-05 . . . . . 13
A.7. Since draft-ietf-httpbis-safe-method-w-body-06 . . . . . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13
1. Introduction 1. Introduction
This specification defines the HTTP QUERY request method as a means This specification defines the HTTP QUERY request method as a means
of making a safe, idempotent request that contains content. of making a safe, idempotent request that contains content.
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,
while this is an common and interoperable query: 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
if the query parameters extend to several kilobytes or more of data However, for a query with parameters that are complex or large in
it may not be, because many implementations place limits on their size, encoding it in the request URI may not be the best option
size. Often these limits are not known or discoverable ahead of because
time, because a request can pass through many uncoordinated systems.
Additionally, expressing certain kinds of data in the target URI is
inefficient, because it needs to be encoded to be a valid URI.
Encoding query parameters directly into the request URI also o often size limits are not known ahead of time because a request
effectively casts every possible combination of query inputs as can pass through many uncoordinated system,
distinct resources. Depending on the application, that may not be
desirable. o expressing certain kinds of data in the target URI is inefficient
because of the overhead of encoding that data into a valid URI,
and
o encoding query parameters directly into the request URI
effectively casts 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 parameters to the query operation are below. In this case, the input parameters to the query operation are
passed along within the request content as opposed to using the passed along within the request content as opposed to using the
request URI. request URI.
A typical use of HTTP POST for requesting a query: A typical use of HTTP POST for requesting a query:
POST /feed HTTP/1.1 POST /feed HTTP/1.1
skipping to change at page 13, line 25 skipping to change at page 13, line 25
o Add QUERY example to introduction (<https://github.com/httpwg/ o Add QUERY example to introduction (<https://github.com/httpwg/
http-extensions/issues/2171>) http-extensions/issues/2171>)
o 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>)
o 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>)
A.7. Since draft-ietf-httpbis-safe-method-w-body-06
o Editorial changes to Introduction (ack Will Hawkins,
<https://github.com/httpwg/http-extensions/pull/2859>)
Authors' Addresses Authors' Addresses
Julian Reschke Julian Reschke
greenbytes GmbH greenbytes GmbH
Hafenweg 16 Hafenweg 16
48155 Münster 48155 Münster
Germany Germany
Email: julian.reschke@greenbytes.de Email: julian.reschke@greenbytes.de
URI: https://greenbytes.de/tech/webdav/ URI: https://greenbytes.de/tech/webdav/
 End of changes. 10 change blocks. 
16 lines changed or deleted 25 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/