Re: [braid] Re: New Version Notification for draft-toomim-httpbis-versions-00.txt
Rory Hewitt <rory.hewitt@gmail.com> Tue, 23 July 2024 05:15 UTC
Received: by ietfa.amsl.com (Postfix) id 8E383C14F73E; Mon, 22 Jul 2024 22:15:15 -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 8D3C1C14F70B for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 22 Jul 2024 22:15:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.836
X-Spam-Level:
X-Spam-Status: No, score=-2.836 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_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, T_MIME_MALF=0.01, 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="JrkAnzvR"; dkim=pass (2048-bit key) header.d=w3.org header.b="ErqL6JKO"; dkim=pass (2048-bit key) header.d=gmail.com header.b="RqnYeqFB"
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 6SEA3nUgr6Dk for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 22 Jul 2024 22:15:11 -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 6F348C14F714 for <httpbisa-archive-bis2Juki@ietf.org>; Mon, 22 Jul 2024 22:15:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Subject:Content-Type:Cc:To:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To; bh=tKTpxklCa07peh2kMXwkMJSmEQgCTD2VL7SWmVZi3hQ=; b=JrkAnzvRlB7+OetpLWTPoELF8l ucCRjyffFwDanYteJyP1UCLDhnnO9J8kgvP7Mkb1Xkb4onNyVGcEZvYLP8A87R0l69Q2jmaLAGTRg 8o6ZTFfPkVSvcu3YCu+ZTxlxpFRN5upX5EXoH6gUFFOjno93Lz95kKdB9BF4RPbZZKGHXiH7wUzq5 va9ZmYbWEhx/ft+lWxW4XRHbv62prUISeAGfNEwreXv7e/eupDkIS/AaWOi2bvEBeVbhvqbQ3m9HR x2y4mbwIqQUs2uOk1RiCxWeF7jNLmzQd15FX3Bea5dFau8+n0XEZ/KIS533bZZcmmNk593KR5GVZs N8G2mZBg==;
Received: from lists by mab.w3.org with local (Exim 4.96) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1sW7qn-000hmY-10 for ietf-http-wg-dist@listhub.w3.org; Tue, 23 Jul 2024 05:14:13 +0000
Resent-Date: Tue, 23 Jul 2024 05:14:13 +0000
Resent-Message-Id: <E1sW7qn-000hmY-10@mab.w3.org>
Received: from ip-10-0-0-224.ec2.internal ([10.0.0.224] helo=puck.w3.org) by mab.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <roryhewitt@gmail.com>) id 1sW7ql-000hlZ-0a for ietf-http-wg@listhub.w3.internal; Tue, 23 Jul 2024 05:14:11 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To; bh=tKTpxklCa07peh2kMXwkMJSmEQgCTD2VL7SWmVZi3hQ=; t=1721711651; x=1722575651; b=ErqL6JKOPraxrEoRVc87hJyI1aWSwT4Y+IzriKnmUgs8kPZGRaJGeRxNu4pzkemGo+UVbOzi8yV IxWgeSvbDORXrEE9wDUFJF9dojI+LB3zae9dFoAJp1YNu06Y+/eIfCYEWxfQpSQWpVhmyn/JOm6Id CSXouRC4GAoJIQk2mCU1/eiJi+kz9tvcsILTbQrjjfT89+5WjWyDddW12+3QLP8yh8VNKbM0xw8le Q7r8mdqRCc4MJENWpRBGJCS/dfKi2OnZWJin6sopfc9LZrUM6xD7svakxZCAbkKtg3LnPEMDwjaWi 44VcAh85471BSA1GbWD4O6tXVchP7FpUujcQ==;
Received-SPF: pass (puck.w3.org: domain of gmail.com designates 2a00:1450:4864:20::32c as permitted sender) client-ip=2a00:1450:4864:20::32c; envelope-from=roryhewitt@gmail.com; helo=mail-wm1-x32c.google.com;
Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by puck.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <roryhewitt@gmail.com>) id 1sW7qk-003Ynu-0K for ietf-http-wg@w3.org; Tue, 23 Jul 2024 05:14:11 +0000
Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-4266edee10cso33567425e9.2 for <ietf-http-wg@w3.org>; Mon, 22 Jul 2024 22:14:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721711646; x=1722316446; darn=w3.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=tKTpxklCa07peh2kMXwkMJSmEQgCTD2VL7SWmVZi3hQ=; b=RqnYeqFBWlHBLpZDwXqIgklCKUIAcpvcozgBMdLskfnx44PF74f6F1RhQJMs36RTYJ Jsbk+G86rv8OkGuthdDKMEuxCX1lx693UIBD+7byFLykqAKcIAxMOeq7J9OaVysw3lsb u3yRLXty5HGO/uY3ubCMaJ184jl7S9E7ZNkZACvj8R+XZf4ooX/PKDPHARBSjTrv56hq dRM8nmX43eNc3YvgSTxy2FN3nVFG+QMbAFATkSBzVK9bx0FGZilrpbuBXyJsH2fYRXO9 UDFhDHyDCgPFWdUE895dQTQK5Vc5fa4D3DCNtKx0ntd8g93NxkletF9HXTdI94myf3yo zd7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721711646; x=1722316446; h=cc: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=tKTpxklCa07peh2kMXwkMJSmEQgCTD2VL7SWmVZi3hQ=; b=UqrTVLzGkZGPkCNRG89tkL1dG2wtbZnvDGREHVD4M8ZZYJVaLyqQEUzEzxB5NgBxyT MLDlL/oDcqrpP3rOLinnaZZxLjBKsOBM7YLCanx3VHW9q+qOJGKaYWyykogVJqSaIcpE 2sa+WczihErGjwT4RZA+RUo2wLAku5ClejN30aVpsC3fqQAa/yb8dvRF5b2B1pigCD/l q5UfdpFK8ErmAMHIMwr1APZCOD5XXOARdY69mIuZmVQj1UMDm5FK3xY/oCva90U1+8zt x/EkE7+BZAZnQhesURhxvWvpwl5lwnmHDDP3DDdvBlFGw38nXNhyT/7BPoKb5Ofpm/H0 eESA==
X-Forwarded-Encrypted: i=1; AJvYcCWplQNUo+IynK7Am33vCyWgKb4C1yhRHXdwvP2Uva+p1hJ5IffnWzsXoqxo7lZBMVob7pyeRmZAIN4GpT0Untf5e9tl
X-Gm-Message-State: AOJu0YwdFgCPLJ07ubMBAKH3ckwDA5QMLS9R7v1Zfuobz4OHNy9F3rNI /zqOVGQgdUTLnKlvhGsO7GpbeK4sG+qr7tXpumY7rKaDOF8qMCjoF46VgS4FCKp674Cy3jR7uen UlDP1evW5J4DFpt544iW0PseUvCU=
X-Google-Smtp-Source: AGHT+IHGIobIUMrV6DMdu3cze3JmV3MyxAC+6bC3L84RpbSnLJTrQzIW2xO5245gJNkU/U7p3M3deXHfnSN3RyB/TCg=
X-Received: by 2002:a05:600c:cc6:b0:426:6f48:2dad with SMTP id 5b1f17b1804b1-427daa67d53mr57562505e9.35.1721711645445; Mon, 22 Jul 2024 22:14:05 -0700 (PDT)
MIME-Version: 1.0
References: <172046173132.445281.15041630415895010148@dt-datatracker-5f88556585-j5r2h> <ff54cd4f-c30e-4447-8744-3297e53b74be@gmail.com> <CAEmMwDxBnLtjRCasVz8ogz1c_Q=9XjYtpNu+sJ6UO==xO4QzJw@mail.gmail.com> <d713500c-c4db-4bf8-8096-edb0b5ff1751@gmail.com> <fdce4502-6888-4c27-bb14-c239e19e8771@app.fastmail.com>
In-Reply-To: <fdce4502-6888-4c27-bb14-c239e19e8771@app.fastmail.com>
From: Rory Hewitt <rory.hewitt@gmail.com>
Date: Mon, 22 Jul 2024 22:13:56 -0700
Message-ID: <CAEmMwDz6bUWbrXRo61XHJ9jmov8Cp8ochTEWDOdDCcHWDZk=yA@mail.gmail.com>
To: Pierre Chapuis <catwell-gmail1@catwell.info>
Cc: Michael Toomim <toomim@gmail.com>, HTTP Working Group <ietf-http-wg@w3.org>, Braid <braid-http@googlegroups.com>
Content-Type: multipart/alternative; boundary="0000000000000854df061de33b04"
X-W3C-Hub-DKIM-Status: validation passed: (address=roryhewitt@gmail.com domain=gmail.com), signature is good
X-W3C-Hub-Spam-Status: No, score=-5.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, T_KAM_HTML_FONT_INVALID=0.01, T_MIME_MALF=0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, W3C_AA=-1, W3C_DB=-1, W3C_WL=-1
X-W3C-Scan-Sig: puck.w3.org 1sW7qk-003Ynu-0K bf9488623d6f78bd108a1232257e20e2
X-Original-To: ietf-http-wg@w3.org
Subject: Re: [braid] Re: New Version Notification for draft-toomim-httpbis-versions-00.txt
Archived-At: <https://www.w3.org/mid/CAEmMwDz6bUWbrXRo61XHJ9jmov8Cp8ochTEWDOdDCcHWDZk=yA@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/52099
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>
Hey Pierre, Actually, I kinda WAS talking about my (mis)understanding that the Parents header could contain both parents and grandparents... That being said, if the Parents header can ONLY contain direct parents, that seems like a (possibly significant) limitation. Would it not be an improvement to allow the header to contain a list of ancestors back to whatever level the server feels is appropriate or retains information, complete with level information (ancestor level): Parents: "parent1","parent 2":1; "grandparent":2;"greatgrandparent1","greatgrandparent2","greatgrandparent3";3 This indicates two parents (level 1), a single grandparent (level 2) and 3 great grandparents (level 3). This could be compared with a similar Parents header for another object to determine where differences may be found, and how far back. Maybe this is getting too far into the weeds - this was, as I noted, based on my misunderstanding, which Pierre obviously understands is a possibility. I guess my primary point is that in finding a balance between brevity and flexibility, a design that is able to specify detailed information is better, even if that detailed information is often elided or ignored. With these fairly 'generic' header names like Version and Parents, the ability to use them to (in theory) 'build' a history of a file and compare with a later, earlier or 'sibling' file send very useful... But I defer to the smarter minds here - I am a mere tinkerer and may well have gotten too deep too early. Rory On Mon, Jul 22, 2024, 8:04 PM Pierre Chapuis <catwell-gmail1@catwell.info> wrote: > Hello Michael, > > regarding the "version and parents headers" ordering issue Rory mentioned, > I don't think he was talking about the case where one version descends the > other one. > > The fact that you say this has very strong implications: > > > Any version can be recreated by first merging its parents, and then > applying the its update onto that merger. > > It either means there cannot be conflicts between parents - or in other > words that conflict resolution is deterministic, commutative *and* > associative (like CRDTs), or that updates must always contain the conflict > resolution of their parents like Git. > > That last solution also means updates can be rejected by the server if its > history is incoherent, and comes with its own issues. The way Git works is > that conflict resolution is always performed with human intervention on > pull, not on push. > > I know Braid has answers to this (Merge Types) and you are trying to break > up the spec here, but it is not surprising that if you have a spec that > says "versions can have several parents and you can merge them" people are > going to wonder how. > > -- > Pierre Chapuis > > On Tue, Jul 23, 2024, at 00:30, Michael Toomim wrote: > > Rory, thanks for these excellent thoughts! It's exciting to see other > people digging into the versioning problem with us. :) > > Responses: > > *== Versioning with ETag ==* > > You make a good point that ETag headers, like the proposed Version header, > are opaque strings that can be formatted to express additional information > if we want to. This is true for both ETag and Version: > > ETag: "Sat, 6 Jul 2024 07:28:00 GMT" > Version: "Sat, 6 Jul 2024 07:28:00 GMT" > > ETag: "v1.0.2" > Version: "v1.0.2" > > We propose articulating the structure of these version ids using a > Version-Type header. You could, for instance, use "Version-Type: date" for > the first example, and "Version-Type: semver" for the second. > > The main problem with ETag, though, is that it marks *unique content* > rather than *unique time*. If you mutate the state of the resource from > "foo" to "bar" and then back to "foo", you'll revert to the same ETag, even > though this is at a different point in time. This breaks collaborative > editing algorithms. > > Finally, I'll note that your claim that ETags don't have to be sensitive > to content-encoding is only true for *weak* ETags. Strong ETags must change > whenever the byte sequence of the response body changes. This means they > should be sensitive to content-encoding. RFC9110 is also explicit that they > depend on content-type: > > > A strong validator might change for reasons other than a change to the > representation data, such as when a semantically significant part of the > representation metadata is changed (e.g., Content-Type) > https://datatracker.ietf.org/doc/html/rfc9110#section-8.8.1 > > Consider the case where a user edits a markdown resource: > > PUT /foo > Content-Type: text/markdown > Version: "mike-99" > > # This is a markdown file > > Hello world! > > And the server then shares this as HTML: > > GET /foo > Accept: application/html > > > HTTP/1.1 200 OK > Content-Type: application/html > Version: "mike-99" > > <html> > <body> > <h1>This is a markdown file</h1> > <p>Hello world!</p> > </body> > </html> > > Using the Version header, we're able to express that these are two > representations of the resource at the same point in time. You can't do > this with a strong ETag. > > *== Version and Parents headers ==* > > I think there's been a miscommunication here. The reason there are > multiple version IDs in the Parents header is for edits that happen *in > parallel*, not for edits that happen in sequence. This is to represent a > version DAG: > > a <-- oldest version > / \ > b c > \ / > d <-- current version > > In this example, the current version "d" would have: > > Parents: "b", "c" > > This is not allowed: > > Parents: "d", "b" > > Because of this language in the spec: > > For any two version IDs A and B that are specified in a Version or > Parents header, A cannot be a descendent of B or vice versa. The > ordering of version IDs within the header carries no meaning. > > Good question! > > *== Client-generated Version IDs on PUT ==* > > Yes, there would be a problem if two clients generate the same version IDs > for two different PUTs. Then the versions would not be unique! > > However, requiring the server to generate versions is only one possible > solution— and is a solution that requires a server. We also want to support > distributed p2p systems, which don't have servers. > > In these systems, it's quite common for clients to generate version IDs. > There are two common ways to solve this problem: > > 1. Use a large random hash space so that collisions are extremely > unlikely. This works well enough for git, for instance. > 2. Each client gets a unique ID, possibly by coordinating with a > server, and then versions are constructed by concatenating > "<client-id>:<counter>" for each client. > > Does this all make sense? > > Again, good questions, and I am glad to see this interest in the topic! I > think we can do a lot with it! > > Michael > On 7/17/24 2:56 PM, Rory Hewitt wrote: > > Hey Michael, > > A few thoughts... > > First, I agree that the concept of versioning hasn't been thought about > enough, and this is definitely a 'good idea (TM)'. > > However, I have a few concerns: > > *1.1.2 Versioning with ETag* > > Because ETags are, by definition, unformatted, while it's true to say that > you often can't rely on them to establish a version, that's entirely > dependent on the format chosen by the user. An ETag *could* validly be > specified as a date: > > ETag: "Sat, 6 Jul 2024 07:28:00 GMT" > > or as a version number: > > ETag: "v1.0.2" > > or as a random string: > > ETag: "Michael is cool" > > IOW, it's totally possible for a site that cares about versioning to use a > format that specifies a version number. I recognize this isn't > *necessarily* the case, but it helps to be clear here. It should be noted > that many web servers that include the creation of ETags natively (e.g. > Apache) include an effective version as part of the ETag. > > Likewise ETags don't *have* to be sensitive to encoding - there's nothing > to stop a server from sending the exact same ETag for two > differently-encoded copies of the same underlying resource. It's just that > they typically do. > > None of this is to say that ETags are better or worse than you describe - > just to say that they *can* be better than they are. > > *2.3 Version and Parents headers* > > You state that the Parents header can include multiple parents (parents, > grandparents, great-grandparents?) and provide an example: > > Parents: "ajtva12kid", "cmdpvkpll2" > > and then say "Any version can be recreated by first merging its parents, > and then applying the its update onto that merger." (Nit: additional "the" > in this sentence). However, you also say that the order of the values in a > Parents header makes no difference. > > Maybe I'm missing something, but in this scenario, how could that work? > Using your example above, here are two possible scenarios: > > * Version "ajtva12kid" is earlier. Version "cmdpvkpll2" is later and > contains an additional section of HTML > * Version "ajtva12kid" is earlier and contains a section of HTML which is > removed in the later "cmdpvkpll2" version > > If you merge the two parent versions, then does the outcome (onto which > you will apply the update) include that section of HTML? > > I guess it just makes sense to me to have the order in the Parents have > some meaning - whether oldest first or last. Or you could specify that both > Version and Parent values must be integers. > > 2.4.3 PUT a new version > > This seems like it could lead to either race conditions or some other > issue with duplicate Version values. Surely it's better to have the client > submit a new version of a resource (passing the Parents header but *not* > passing the Version header) and have the server, which is presumably the > prime source of versioning truth, calculate a version (perhaps after > retrieving other PUT requests from other clients) and return that value in > the Version response header? > > I see you discuss this later with the Current-Version header, so perhaps > you covered this and my old eyes missed it. > > Rory > > > On Mon, Jul 15, 2024 at 6:31 PM Michael Toomim <toomim@gmail.com> wrote: > > Hi everyone in HTTP! > > Last fall we solicited feedback on the Braid State Synchronization > proposal [draft > <https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-braid-http-04>, > slides > <https://datatracker.ietf.org/meeting/118/materials/slides-118-httpbis-braid-http-add-synchronization-to-http-00>], > which I'd summarize as: > > "We're enthusiastic about the general work, but the proposal is too > high-level. Break the spec up into multiple independent specs, and work > bottom-up. Focus on concrete 'bits-on-the-wire'." > > So I'm breaking the spec up, and have drafted up the first chunk for you. > I would very much like your review on: > > *Versioning of HTTP Resources* > draft-toomim-httpbis-versions > https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-versions-00 > > Versioning is necessary for state synchronization—and occurs in a range of > HTTP systems: > > - Caching > - Archiving > - Version Control > - Collaborative Editing > > Today, HTTP has resource versions in the Last-Modified and ETag headers, > and sometimes embeds versions in URLs, like with WebDAV. Each of these > options serves some needs, but also has specific limitations. An improved > general approach is proposed, which provides new features, that could > enable cool new applications, such as incrementally-updated RSS feeds, and > could simplify existing specifications, such as resumeable uploads, and > history compression in OT/CRDT algorithms. > > I would love to know if people find this work interesting. I think we > could improve performance, interoperability, and be one step closer to > having Google Docs power within HTTP URLs. > > Michael > > > -- > You received this message because you are subscribed to the Google Groups > "Braid" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to braid-http+unsubscribe@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/braid-http/d713500c-c4db-4bf8-8096-edb0b5ff1751%40gmail.com > <https://groups.google.com/d/msgid/braid-http/d713500c-c4db-4bf8-8096-edb0b5ff1751%40gmail.com?utm_medium=email&utm_source=footer> > . > >
- Fwd: New Version Notification for draft-toomim-ht… Michael Toomim
- Re: New Version Notification for draft-toomim-htt… Rory Hewitt
- Review of draft-toomim-httpbis-versions-00 Michael Toomim
- Re: New Version Notification for draft-toomim-htt… Michael Toomim
- Re: Review of draft-toomim-httpbis-versions-00 Michael Toomim
- Re: Review of draft-toomim-httpbis-versions-00 Michael Toomim
- Re: [braid] Re: New Version Notification for draf… Rory Hewitt
- Review of draft-toomim-httpbis-versions-00 Michael Toomim
- Re: Review of draft-toomim-httpbis-versions-00 Marius Kleidl
- Re: New Version Notification for draft-toomim-htt… Julian Reschke
- Re: New Version Notification for draft-toomim-htt… Michael Toomim
- Re: [braid] Re: New Version Notification for draf… Michael Toomim
- Re: [braid] Re: New Version Notification for draf… Michael Toomim
- Re: Review of draft-toomim-httpbis-versions-00 Michael Toomim
- Re: Review of draft-toomim-httpbis-versions-00 Michael Toomim
- Re: Review of draft-toomim-httpbis-versions-00 Michael Toomim
- Re: Fwd: New Version Notification for draft-toomi… Julian Reschke
- Re: Fwd: New Version Notification for draft-toomi… Josh Cohen
- Re: Fwd: New Version Notification for draft-toomi… Lisa Dusseault
- Re: Fwd: New Version Notification for draft-toomi… Michael Toomim
- Re: Review of draft-toomim-httpbis-versions-00 Michael Toomim
- Re: Fwd: New Version Notification for draft-toomi… Josh Cohen
- Re: Review of draft-toomim-httpbis-versions-00 Ben Schwartz
- Re: Review of draft-toomim-httpbis-versions-00 Michael Toomim