Re: Review of draft-toomim-httpbis-versions-00
Michael Toomim <toomim@gmail.com> Tue, 23 July 2024 19:26 UTC
Received: by ietfa.amsl.com (Postfix) id 4F50BC1CAE96; Tue, 23 Jul 2024 12:26:25 -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 4E77BC1CAE89 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 23 Jul 2024 12:26:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.857
X-Spam-Level:
X-Spam-Status: No, score=-7.857 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_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="PEHbwTDQ"; dkim=pass (2048-bit key) header.d=w3.org header.b="bGRxgNe/"; dkim=pass (2048-bit key) header.d=gmail.com header.b="nNdU5A8F"
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 wbNcA3IpApjI for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 23 Jul 2024 12:26:21 -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 0D472C18DB8F for <httpbisa-archive-bis2Juki@ietf.org>; Tue, 23 Jul 2024 12:26:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Subject:In-Reply-To:From:References:Cc:To:MIME-Version:Date: Message-ID:Content-Type:Reply-To; bh=SvrOqr2lR0nfxhS3h/PlXfVYFiPBrnFz7aFl1G/Yz1w=; b=PEHbwTDQn/EBPqYRmnDN9w82CG Fs3KaSQ+oXD6+rdOE3NeAsik5AH7qgcolDp7U3MgXioTSrIHg8En2Udt3qpEh7SnZ88XhR+w/b+/3 aPcYCBsh715uu3kn9WxZmhneqV6dWbXvfvZbu7kC87EGbyUtt7vyfhaCPMBNF1zUtFO+SlZtsRwoA sPzobUlg8ghVGZi7RfDeuWNMdzhCwoZjkf0V2n5eZuOGU2ji8Re4+eWLuKUhDCPl0JX0Wddun7Mk2 8qM0QxAIjDAdikzFni4+gD/ZeNtojKUdVlaDjB/iCjWhN8aGuUr6YpqS4coFJCMIiUtAIzHlHjWP1 rd5tI/VQ==;
Received: from lists by mab.w3.org with local (Exim 4.96) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1sWL8Y-002bNY-1S for ietf-http-wg-dist@listhub.w3.org; Tue, 23 Jul 2024 19:25:26 +0000
Resent-Date: Tue, 23 Jul 2024 19:25:26 +0000
Resent-Message-Id: <E1sWL8Y-002bNY-1S@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 <toomim@gmail.com>) id 1sWL8X-002bMY-06 for ietf-http-wg@listhub.w3.internal; Tue, 23 Jul 2024 19:25:25 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date: Message-ID:Content-Type:Reply-To; bh=SvrOqr2lR0nfxhS3h/PlXfVYFiPBrnFz7aFl1G/Yz1w=; t=1721762725; x=1722626725; b=bGRxgNe/8QevXIyHTYKpxbp3ljiDBCK4gz5KGMJwsup+/bJHJKQpE0YzEesq5sRLygzPmDPsGKn Qk4UNZB44ZTrtWzBKLQw96nAM7YJtv5/ghlQQ3sOqKotA4GU0lF78tRFToR7Q4WhaA12sKqGaPz27 69hNGHG4Vgleu/SFTYnHnRShVEeFvn1cMLdoLm/zdPI+82KJBAbVyhmgH6Rgc6rDZymlyicOCBJs3 X+U2hx7L3hTOokEAcRYrwCC9F1Iq5co9zaYLmLdsFa6FgF0ZuDiMKQaco9CFTFRbrxS32D1A0pXnf UFWJP3eUZdMcsevMCUe68DUOJ1dQW4C4l37Q==;
Received-SPF: pass (puck.w3.org: domain of gmail.com designates 2607:f8b0:4864:20::b2a as permitted sender) client-ip=2607:f8b0:4864:20::b2a; envelope-from=toomim@gmail.com; helo=mail-yb1-xb2a.google.com;
Received: from mail-yb1-xb2a.google.com ([2607:f8b0:4864:20::b2a]) by puck.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <toomim@gmail.com>) id 1sWL8V-003o9b-37 for ietf-http-wg@w3.org; Tue, 23 Jul 2024 19:25:24 +0000
Received: by mail-yb1-xb2a.google.com with SMTP id 3f1490d57ef6-e0354459844so5557298276.3 for <ietf-http-wg@w3.org>; Tue, 23 Jul 2024 12:25:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721762720; x=1722367520; darn=w3.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=SvrOqr2lR0nfxhS3h/PlXfVYFiPBrnFz7aFl1G/Yz1w=; b=nNdU5A8F1cgKvnRMtWTLvS7QNcL2HP7kXUKrUXqDfoDJifTwtDLIYEUHJ59MjCPmfa NjU1yVNpYN1+p202bZVN3DxkDb6hEqk8pwS4mzhzYFyeIZwvP7sKsTQNEnVPg8pYsH1J b5afOFZq/n9eKWrp8v9lj3iuJr1t105Ur06/gBULMpP/9tsAUZyvZLvS0hMpUOdyI1/v Mwiayt9b6YPZPIphAnWw6xv0kWh0MuKX5HdQ/nKD9JfmzWL7ay3moQ1Lr5Z+MJDIq9vl 20Khmrt7K1P6OUNo9ZiZYyN5bk7LYxc46GTN4MGNXNysHGchuMvqU49a4P5TirY5z3S1 1ukA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721762720; x=1722367520; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=SvrOqr2lR0nfxhS3h/PlXfVYFiPBrnFz7aFl1G/Yz1w=; b=cH4eKKRCmGVXuK9lmoT543yONYbiqWizLjJRQjt5us2PX7Ivdg5GQhb+wkN/ylgxA1 j/ptUef24FmPqDlqvDrnfEcLk5oSoNU9TqanMn4fztvK6XWunujYt/POsyOFj9Qv7huJ q5UY0eI31RbDeyPfDJ5XNV2X14GTcM/ikO4WP83WWF1Ny7BdkcTGdXV7WbiLWliwMmoX OR0Y8ypOiPIvas/92O7qfzRfvOrwVT07CMAnlxymjBzNVVhmjVxiZx8C2sUPasxPY04x SPDm0+J0Yx2Ydlq8/l+hF8PIPVBIp54cdgiknMyr8oKYEB2R9c2QklL4GAdBhaq946GR Uh7Q==
X-Gm-Message-State: AOJu0Ywyuz2J5qCVxs97Q6itV/LWJp+TSgDODNm6vI6kyVlnc++5pVwy IJhbrnSogRK+73cRlFYRbzGMahp+XeRftR2Bx1bLzl+mDMH4E9KB2Mv8eIqdvt8=
X-Google-Smtp-Source: AGHT+IGw7iIHgxIwmp44juWJu7Wz6kY4kL0sKbNvQGAZ61hC5I1P40SIK+7JSAuRIa2mQrigBQBZWQ==
X-Received: by 2002:a05:6902:2605:b0:e03:ab93:10eb with SMTP id 3f1490d57ef6-e0b0985c489mr884894276.36.1721762720238; Tue, 23 Jul 2024 12:25:20 -0700 (PDT)
Received: from ?IPV6:2600:380:9e5f:2d96:dcdf:84dc:b5e0:2bce? ([2600:380:9e5f:2d96:dcdf:84dc:b5e0:2bce]) by smtp.gmail.com with ESMTPSA id 3f1490d57ef6-e08605d53dasm1983950276.0.2024.07.23.12.25.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 23 Jul 2024 12:25:19 -0700 (PDT)
Content-Type: multipart/alternative; boundary="------------j6kbBP87H1qaIpn85jKSXzBV"
Message-ID: <66a21dda-9ccf-4810-bdbc-3e58d278a0db@gmail.com>
Date: Tue, 23 Jul 2024 12:25:16 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: Marius Kleidl <marius@transloadit.com>
Cc: HTTP Working Group <ietf-http-wg@w3.org>, Braid <braid-http@googlegroups.com>, Peter van Hardenberg <pvh@pvh.ca>
References: <172046173132.445281.15041630415895010148@dt-datatracker-5f88556585-j5r2h> <ff54cd4f-c30e-4447-8744-3297e53b74be@gmail.com> <16912382-c530-4508-b457-4397d06acd46@gmail.com> <0a25c83e-6941-464e-9252-8ca98960226a@gmail.com> <ba9bd07d-b648-4afc-8c78-4ec05d2e1797@gmail.com> <CANY19NvUzjTmPdxSR38K+8c7ESDv2O74PX41RFT8r3tfkL-PoA@mail.gmail.com>
Content-Language: en-US
From: Michael Toomim <toomim@gmail.com>
In-Reply-To: <CANY19NvUzjTmPdxSR38K+8c7ESDv2O74PX41RFT8r3tfkL-PoA@mail.gmail.com>
X-W3C-Hub-DKIM-Status: validation passed: (address=toomim@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, URIBL_DBL_BLOCKED_OPENDNS=0.001, W3C_AA=-1, W3C_DB=-1, W3C_WL=-1
X-W3C-Scan-Sig: puck.w3.org 1sWL8V-003o9b-37 f9c385788a02503c2f280902839ba017
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Review of draft-toomim-httpbis-versions-00
Archived-At: <https://www.w3.org/mid/66a21dda-9ccf-4810-bdbc-3e58d278a0db@gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/52106
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>
Yes, it works great for collaborative editing. I use it every day in production. It's very fast. We send a PUT per keystroke. I should show you a demo. It's real. :) It's not true that an HTTP PUT induces more load on the server than a WebSocket message. They are equivalent. Consider that both H2 and WebSocket are TCP streams that stay persistently open. The only difference between these two streams is how the data is formatted. They don't impact how/when the server loads the resource from disk into ram. It's true that HTTP requests often contain a session ID in a cookie on each request, whereas a WebSocket might only send that when the user logs in/out, but that header gets compressed down with H2 header compression and isn't a significant performance problem. Perhaps you're thinking about old-style threaded web servers? Those have a lot of overhead per request, because a 4mb OS thread has to be allocated to each request. But those don't support persistent connections (like WebSockets) at all. That's why everyone's moved to evented servers, like nodejs, which make persistent connections cheap, whether formatted as a WebSocket message stream or a H2 message stream. On 7/23/24 1:45 AM, Marius Kleidl wrote: > Hi Michael, > > talking about performance, I am curious how it would perform in a > real-time, collaborative editing process (similar to Google Docs or > the note taker tool during the IETF meeting). To facilitate the > real-time aspects of the editing experience, would the client have to > send a PUT request after every few keystrokes, so that the changes > appear quickly on the peers' screens? Sending these requests is > comparatively cheap for the client, especially with HTTP/2 and HTTP/3, > but potentially more costly for the server, which has to perform > authentication checks for each request and then load the resource's > state from some storage. If many requests are sent in short > succession, this can induce a higher load on the server. A stateful > connection, like with WebSockets, in contrast to stateless HTTP > requests could reuse the loaded and checked state - although such a > method likely has other caveats attached. > > Overall my question is whether you think this draft is suitable to > deliver such real-time experiences in an efficient manner? > > Best regards > Marius Kleidl > > On Tue, Jul 23, 2024 at 1:51 AM Michael Toomim <toomim@gmail.com> wrote: > > Peter, I just wrote up an explicit example of how to compress four > PUTs into 7 bytes. Check out the new section 5.1 here: > > https://github.com/braid-org/braid-spec/blob/master/draft-toomim-httpbis-versions-01.txt#L945 > > These four puts compress down to 0.0146% of their original size, > at least in theory. Note that said compression scheme isn't fully > specified in this draft — the focus of this draft is just to > gather interest in working on a versioning system that makes such > compression possible. The actual compression schemes would be > future work. > > On 7/22/24 12:41 PM, Michael Toomim wrote: >> >> Peter, thank you for your interest! I'm excited that you are >> bringing up performance for discussion! There's a lot to say on >> that, and I give an overview below: >> >> *== Compression & Performance ==* >> >> First, let me correct a big misinterpretation— this work >> absolutely prioritizes *high-performance*, *realtime* data >> synchronization. It should support thousands of mutations per >> second. Our implementations are higher-performance >> <https://josephg.com/blog/crdts-go-brrr/> than Automerge, for >> instance. I regularly work today with a doc composed of 110,000 >> edits. It loads instantly, thanks to some great Version-Types >> we've designed. >> >> The Version-Type (in the proposed Version-Type header) is the way >> you get performance increases. The key to performance is managing >> history growth. You manage that by finding a pattern in history, >> and then compressing or ignoring history. You can express those >> patterns as a Version-Type spec. (There's a robust theory behind >> this called Time Machines.) >> >> I apologize that this wasn't clear in the draft -00. I thought >> this would be an advanced feature that people wouldn't comment on >> for a bit — but am pleasantly surprised to hear your interest in >> it! I will be adding more clarity to the spec on Version-Types, >> and already have begun doing so in github: >> >> https://github.com/braid-org/braid-spec/blob/master/draft-toomim-httpbis-versions-01.txt#L885 >> >> I'd also encourage you to check out this sketch of how to bake >> RLE into HTTP Header Compression: >> >> https://braid.org/meeting-69/header-compression >> https://braid.org/video/https://invisiblecollege.s3.us-west-1.amazonaws.com/braid-meeting-69.mp4#4166 >> >> In any case, keep in mind that at this stage, we need to know >> only whether there is /interest/ in this area of work — not >> whether this particular spec meets your needs. If we adopt this >> work into the HTTP WG, we will get a chance to change or rewrite >> any part of the spec. This spec is just a starting point to get >> discussion going. So think of this as a problem statement rather >> than a solution statement. >> >> *== PUTs ==* >> >> As for PUTs, I suspect you might be thinking about HTTP/1.0 where >> each PUT might require a new TCP connection with its own TLS >> handshake. But keep in mind that with HTTP/2 and 3, all HTTP >> semantics are expressed in binary, and a PUT is usually just a >> single packet! This is just as efficient as any hand-rolled >> protocol you have, and it has the advantage of being >> interoperable with all of HTTP. >> >> *== History Retention == >> * >> >> This versioning model supports Time Machines >> <https://braid.org/time-machines>— the beauty of which is that >> peers become free to independently choose how much history to >> store. An archival peer can store the full history. A light >> client can store just the latest version (see the amazing >> Simpleton <https://braid.org/simpleton> client, which needs zero >> history). >> >> So each peer can choose how much history to store. If a peer >> doesn't have enough history to merge an edit, it can simply >> request that history from another peer. In this draft, you do so >> by requesting a GET with both Version and Parents headers specified. >> >> *== Signatures & Validation == >> * >> >> This is out of scope for this proposal on versions. However, (a) >> there are some Version-Types that double as signatures. When this >> happens, it can be specified by authoring a Version-Type spec to >> articulate the new constraint. And (b) this is a generally >> important area of work that I encourage. >> >> Cheers! >> >> Michael >> >> On 7/22/24 11:44 AM, Michael Toomim wrote: >>> >>> We've got divergent discussion threads that I'm merging together. >>> >>> First, Peter Van Hardenberg (of Ink & Switch, Local-First, and >>> Automerge) wrote this initial review of the draft. He's cc'd, >>> and we can respond in this thread. >>> >>> ------------------------ >>> -- Peter Van Hardenberg: -- >>> ------------------------ >>> >>> Hi Michael, >>> >>> I had a quick look at the spec and gave some thought to whether >>> we'd want to adopt it. I think right now it has quite a lot of >>> per-version overhead, and viewing this through a local-first >>> lens, one can imagine having to publish a large number of >>> versions each as separate PUT calls. You might want to consider >>> supporting ranges for PUT in a single message. >>> >>> Overall, our goals appear to differ from what you're proposing >>> here so this feedback may not be particularly important. My >>> sense is that the expected granularity of changes for Braid is >>> relatively large and that the frequency is relatively long -- on >>> par with a changed HTML form submission, perhaps. We spend quite >>> a lot of our time thinking about optimizing updates for >>> potentially thousands of edits and trying to minimize the number >>> of round trips required to synchronize state in both directions. >>> You mention that the design intends to be optimizable but I >>> didn't see much in the text that clarified how. >>> >>> One other observation is that this spec does not appear to >>> prioritize retention of history: >>> > - If the Parents header is absent, the server SHOULD return a >>> > single response, containing the requested version of the >>> resource >>> > in its body, with the Version response header set to the same >>> > version. >>> This design may centralize the system, as clients default to >>> receiving "flattened" versions of resources and thus may not be >>> able to merge changes from other sources. >>> >>> Last, have you considered specifying some kind of signature / >>> validation feature? If clients are applying patches iteratively, >>> it might help for them to be able to validate that they're in >>> the expected state either before or after applying a patch. >>> >>> All the best, >>> -p >>> >>> On 7/15/24 6:26 PM, Michael Toomim 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 >>>> >>>> -------- Forwarded Message -------- >>>> Subject: New Version Notification for >>>> draft-toomim-httpbis-versions-00.txt >>>> Date: Mon, 08 Jul 2024 11:02:11 -0700 >>>> From: internet-drafts@ietf.org >>>> To: Michael Toomim <toomim@gmail.com> <mailto:toomim@gmail.com> >>>> >>>> >>>> >>>> A new version of Internet-Draft >>>> draft-toomim-httpbis-versions-00.txt has been >>>> successfully submitted by Michael Toomim and posted to the >>>> IETF repository. >>>> >>>> Name: draft-toomim-httpbis-versions >>>> Revision: 00 >>>> Title: HTTP Resource Versioning >>>> Date: 2024-07-08 >>>> Group: Individual Submission >>>> Pages: 19 >>>> URL: >>>> https://www.ietf.org/archive/id/draft-toomim-httpbis-versions-00.txt >>>> Status: >>>> https://datatracker.ietf.org/doc/draft-toomim-httpbis-versions/ >>>> HTMLized: >>>> https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-versions >>>> >>>> >>>> Abstract: >>>> >>>> HTTP resources change over time. Each change to a resource >>>> creates a >>>> new "version" of its state. HTTP systems often need a way to >>>> identify, read, write, navigate, and/or merge these versions, in >>>> order to implement cache consistency, create history archives, >>>> settle >>>> race conditions, request incremental updates to resources, >>>> interpret >>>> incremental updates to versions, or implement distributed >>>> collaborative editing algorithms. >>>> >>>> This document analyzes existing methods of versioning in HTTP, >>>> highlights limitations, and sketches a more general versioning >>>> approach that can enable new use-cases for HTTP. >>>> >>>> >>>> >>>> The IETF Secretariat >>>> >>>>
- 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: Review of draft-toomim-httpbis-versions-00 Ben Schwartz
- 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: Review of draft-toomim-httpbis-versions-00 Michael Toomim
- Re: Fwd: New Version Notification for draft-toomi… Julian Reschke