Re: Method Mania
Josh Cohen <joshco@gmail.com> Thu, 25 July 2024 23:36 UTC
Received: by ietfa.amsl.com (Postfix) id 64881C14F61E; Thu, 25 Jul 2024 16:36:56 -0700 (PDT)
Delivered-To: ietfarch-httpbisa-archive-bis2juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 63BD5C14F610 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 25 Jul 2024 16:36:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.856
X-Spam-Level:
X-Spam-Status: No, score=-7.856 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=w3.org header.b="Xh+8H/Q4"; dkim=pass (2048-bit key) header.d=w3.org header.b="piTlS3wM"; dkim=pass (2048-bit key) header.d=gmail.com header.b="MbCky/An"
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zQDB5YHh1Yp8 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 25 Jul 2024 16:36:52 -0700 (PDT)
Received: from mab.w3.org (mab.w3.org [IPv6:2600:1f18:7d7a:2700:d091:4b25:8566:8113]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 56722C14F615 for <httpbisa-archive-bis2Juki@ietf.org>; Thu, 25 Jul 2024 16:36:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Subject:Content-Type:To:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Cc:Reply-To; bh=/JZ78R1AoA8tWvbrMi2ls8tJFFJh7c/Qx0l/2LRgei8=; b= Xh+8H/Q44D7kSpMcBiYZb80ogvguSNP4jMJhqsQNhMkozqfjKRFFTH5Ba3tIo0HD8CJMYvCqF+LOZ cUgb2Y1k5Y1XjO/vQoGkYgFtBgQGCvsJTD7ppVlg+1ItsI4iAYmNGFydr0W3GiVoRdT9H6ghlb1sB wQlH+TTN+f7T049Wr3cW4yGGij1+J/aivfY37/wVGRpoQ8B8ybH9vXp9y6XtutBgJL4IKQhtOkpK/ BVMs7aJnNoA0baequ6GmAX/FaxNeFOxYV6oBRJXYmuvV6uMCkDlr0+gt6VT5YV5XPDdkuAFEnJq3u /0yPRFGq2rkXIlvh4EVYmX+KLDieNYvyZw==;
Received: from lists by mab.w3.org with local (Exim 4.96) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1sX80N-008CgY-2p for ietf-http-wg-dist@listhub.w3.org; Thu, 25 Jul 2024 23:36:15 +0000
Resent-Date: Thu, 25 Jul 2024 23:36:15 +0000
Resent-Message-Id: <E1sX80N-008CgY-2p@mab.w3.org>
Received: from ip-10-0-0-144.ec2.internal ([10.0.0.144] helo=pan.w3.org) by mab.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <joshco@gmail.com>) id 1sX80L-008CfZ-2r for ietf-http-wg@listhub.w3.internal; Thu, 25 Jul 2024 23:36:13 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Cc:Reply-To; bh=/JZ78R1AoA8tWvbrMi2ls8tJFFJh7c/Qx0l/2LRgei8=; t=1721950573; x=1722814573; b=piTlS3wMeFmWAV0DovMmuuvq+I9nGNtHp4+KXmSz/8JQ9L2 UpN/uhkGW5yTruGyJnZTvPYm7G3na9hr3sYRUmIQDBb+va3xmN8o04l7MC80vbpvo47esG+U81vIE O75vmNriVA7fFKVZzYo6hooWTY+wlTZcxacR1I917cuBYhdkg2+1j7iJe5U/HQXIIvS7UD89MgY/l 8QnW598ahMLkxlMKQqkNk9v3NQU1VDl9F1UliWW1hzBCdTOFgAtrl/ML57ZQn8kNBRXQNRNuK4RgV /bM5yC6qmmqer9l0RgKZ/huZLBamGz40JHAZ/7o5Gywean81wzL3K0hzP6laLf6A==;
Received-SPF: pass (pan.w3.org: domain of gmail.com designates 2607:f8b0:4864:20::c34 as permitted sender) client-ip=2607:f8b0:4864:20::c34; envelope-from=joshco@gmail.com; helo=mail-oo1-xc34.google.com;
Received: from mail-oo1-xc34.google.com ([2607:f8b0:4864:20::c34]) by pan.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <joshco@gmail.com>) id 1sX80L-00D06y-0Q for ietf-http-wg@w3.org; Thu, 25 Jul 2024 23:36:13 +0000
Received: by mail-oo1-xc34.google.com with SMTP id 006d021491bc7-5d5bb03ff1dso242212eaf.1 for <ietf-http-wg@w3.org>; Thu, 25 Jul 2024 16:36:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721950569; x=1722555369; darn=w3.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=/JZ78R1AoA8tWvbrMi2ls8tJFFJh7c/Qx0l/2LRgei8=; b=MbCky/AnunYnj0MpntBgHz44Gi06xFefFLgSproB2AJfEpro7pJ3kNtcksK/MavC4Y IlNA6zWl5LAvs7jtfnmrwp2yGQOnlE4DlcuQQG7fwyc1qwtQjBdtWcV6kZi60NmYxx5v Wq2789pmzgkD93tCHzQpZz51LO2k2isF8SWpCCwVLhBDj+1W7ZDlHZWZBObMxLlRZayk EPcH9HqhMnWfZGn19+w9a/ZShQO9V5shyog2sYGxQ0S+bilTBFhPwVIb1Ty+MkihXIsC a4Eqnh8rCJeVV5jR7aVggsAI7tpzfxDkXTd7P62nJbbdHRTMBGjnQ8uSzLHtII6V3hSU UQ0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721950569; x=1722555369; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=/JZ78R1AoA8tWvbrMi2ls8tJFFJh7c/Qx0l/2LRgei8=; b=a0rmsFcPLbvx815O3V614bb/zf4+POZf2fWQRVuCWtmhpace65xREUJC7DvSsU3WKS 9aOF043Ub0e/OWuF5YWy3YdUFSBUJ9gVnHdNlEykTPDeXUzBTlbK+JFA0zYPtSZvhKEs Yni+j+uDo2tJ46qxnrnKMl5igu6u6jS77YAmh/e85d4GOGRDUnfFVQV2tYGuhD06Z2Jh KrSULQ2xv85pbi9FukUpUeHkf9LrjbGi+LhM+qGHQGlxMg4H+VY43dhJcWkons5zZzh/ oJGvRoxkrqtt06vJB1Xdr3KwFvzDJ3qGQ8Xxaf3LIW8XtQRRgsqup4ucfF3cJn7uouwW /Hmw==
X-Gm-Message-State: AOJu0Ywq195w2izDBoEViMc5UVa9FfV0P3aZ/qZM5nBrwu2HnZdcHX0z nZWH8+SUyra3pZlza2brLuUhLG+oBJ9qsSp0O8W1zPhIKXkfGnoHL46GUuNQghlY5D6tJ1v5W9n 0AAL62hKe+zK6l++3/yrYh/qTscLlkiu+664=
X-Google-Smtp-Source: AGHT+IE0r9owJnm2YLhhMkyYIBXLH5vzConDNOnBtCRmv9Jq/yD1juH5rXBTD/szfqGWJkEJtddBKuRroW2HsD1T6MQ=
X-Received: by 2002:a05:6820:190c:b0:5c6:61fc:2f42 with SMTP id 006d021491bc7-5d5b436cc0cmr4818869eaf.5.1721950569201; Thu, 25 Jul 2024 16:36:09 -0700 (PDT)
MIME-Version: 1.0
References: <CAF3KT4QZzx+FXOUHZoy+gPqJjQ+4KdOC+_29vbUANNtZQS4c+A@mail.gmail.com>
In-Reply-To: <CAF3KT4QZzx+FXOUHZoy+gPqJjQ+4KdOC+_29vbUANNtZQS4c+A@mail.gmail.com>
From: Josh Cohen <joshco@gmail.com>
Date: Thu, 25 Jul 2024 16:35:59 -0700
Message-ID: <CAF3KT4ROge=67QXaT7ZtcnmOFW6drvauEW2phT2noP3H-Gms4g@mail.gmail.com>
To: HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="000000000000ff878e061e1adb37"
X-W3C-Hub-DKIM-Status: validation passed: (address=joshco@gmail.com domain=gmail.com), signature is good
X-W3C-Hub-Spam-Status: No, score=-6.1
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, DMARC_PASS=-0.001, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, W3C_AA=-1, W3C_DB=-1, W3C_IRA=-1, W3C_WL=-1
X-W3C-Scan-Sig: pan.w3.org 1sX80L-00D06y-0Q da9ce277cafc23dedb70f59fe7a50c5a
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Method Mania
Archived-At: <https://www.w3.org/mid/CAF3KT4ROge=67QXaT7ZtcnmOFW6drvauEW2phT2noP3H-Gms4g@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/52146
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/email/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>
Correcting myself... Idempotency refers to the effect on the server, not the response to the client. So my point about subscribe violating that rule was incorrect. From the connection semantics point of view, it might be worth considering a separate method. On Thu, Jul 25, 2024 at 3:27 PM Josh Cohen <joshco@gmail.com> wrote: > On the httpwg agenda at IETF 120 were a proposal for a new QUERY method > and Braid, which has subscription functionality that overloads the GET > method. > > > > What I am curious about is if, at this point in the evolution of the web, > it is now safe to add new methods for new functionality. I've been > reading up on HTTP/2/3 and it seems that nowadays, connections are > end-to-end secure and are essentially tunneled through middle boxes, > including HTTP/1.1 proxies. I'm still just wrapping my head around MASQUE, > but it looks like it can handle arbitrary methods. Similarly origin > servers have evolved to support arbitrary methods. > > > The assumption I am making is that this is true. I am curious what others > think, and what the common mindset is. Eg do people shy away from new > methods, or not? > > > > Braid > > > > In the Braid internet draft[3], section 2.5 states: > > If the request contains a Subscribe header, then it SHOULD additionally >> leave the request open and subscribe the client to future updates. >> Otherwise, it should close the connection after sending the updates. > > > > That imposes semantics at the connection level which are different from > the norm. In HTTP/1.1, the Connection header specifies whether to keep the > connection open. In HTTP/2/3, the Connection header is prohibited. > > > Section 4.1 says: > > > A client requests a subscription by issuing a GET request with a >> Subscribe header: > > Subscribe: <Parameters> > > > > <Parameters> may be blank, set to "true", or contain arbitrary data, and >> is reserved for future use. > > >> This header modifies the normal GET method's semantics, to request a subscription >> to future updates to the data, rather than only returning the current >> version of the representation data. > > > > Another issue is idempotency. From reading the draft, GET with Subscribe > header with no value, or true, returns the current version. Since versions > change over time, and Braid has chosen to use the same URI for different > versions of a resource, resending the same GET with Subscribe will not > produce the same result. This violates the idempotency rule. How caches > will handle this may be an enigma. > > > > An example of SUBSCRIBE, POLL, NOTIFY etc. methods, which were proposed > in 1998 is GENA[1]. For historical reasons described at the end of this > email, these methods were incorporated into UPNP rather than HTTP. > > > > QUERY Method > > > > The Internet Draft for QUERY makes a similar argument for why it uses a > new method. Section 1.9 [2] describes a current practice of using POST for > queries: > > > >> This variation, however, suffers from the same basic limitation as GET in >> that it is not readily apparent -- absent specific knowledge of the >> resource and server to which the request is being sent -- that a safe, >> idempotent query is being performed. > > > > The QUERY method proposal acknowledges the idempotency issue and addresses > it with a new method. > > > *Question* > > Should Braid follow the QUERY method proposal's example and define new > methods for subscriptions? Thes may be useful in cases beyond Braid. > > > History > > > > Back in the 1990s, WebDAV was the first post HTTP/1.1 example, that I was > aware of, to add new methods to enable new functionality. WebDAV is > distributed authoring adding methods like COPY, LOCK, PROPFIND etc. > > After that, a number of application protocol efforts looked to HTTP as a > possible substrate. One draw was its ability to traverse firewalls via > proxy servers. Examples were SIP, UPNP and IPP (Internet Printing > Protocol). > > I authored the Internet Draft General Event Notification Architecture[1] > which proposed the addition of subscription methods SUBSCRIBE, NOTIFY etc. > > > > There was debate about overloading the POST method vs new methods. At the > time, many firewalls, proxies, and even some origin servers like Apache > didn't support arbitrary methods. The IESG view was that new protocols > should use different TCP ports rather than riding on HTTP. The result is > that SIP, UPNP, IPP are "HTTP-like" but incompatible protocols. GENA was > rolled into UPNP as chapter 4. > > > > > > > > [1] https://datatracker.ietf.org/doc/html/draft-cohen-gena-p-base-01 > > [2] > https://www.ietf.org/archive/id/draft-ietf-httpbis-safe-method-w-body-03.html#section-1-9 > > [3] https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-braid-http > > > > > > -- > > --- > *Josh Co*hen > > -- --- *Josh Co*hen
- Method Mania Josh Cohen
- Re: Method Mania Julian Reschke
- Re: Method Mania Josh Cohen
- Re: Method Mania Soni L.
- Re: Method Mania Patrick Meenan
- Re: Method Mania Josh Cohen
- Re: Method Mania Soni L.
- Re: Method Mania Julian Reschke
- Re: Method Mania Josh Cohen
- Re: Method Mania Patrick Meenan
- Re: Method Mania Rahul Gupta
- Re: Method Mania Watson Ladd
- RE: Method Mania joshco
- Re: Method Mania Patrick Meenan
- Re: Method Mania Josh Cohen
- Re: Method Mania Julian Reschke
- Re: Method Mania Josh Cohen
- Re: Method Mania Josh Cohen
- Re: Method Mania Matthew Kerwin
- Re: Method Mania Josh Cohen
- Re: Method Mania Julian Reschke
- Re: Method Mania Josh Cohen
- Re: Method Mania Daniel Veditz