Hi Sheng, Thank you for raising this issue - Kai Gao and I looked further into this and have discovered that the cases are actually different for a "https" connection and a "http" connection. There is a negotiation procedure defined for "https" in RFC 7301. However, there does not seem to be one established for "http." As such, I believe Kai is thinking of writing a short, separate draft to address this, but regardless, it falls outside the scope of this new-transport document which concerns only what happens after a connection is made. See the new proposal below.
OLD The HTTP version a connection uses is negotiated between client and server based on the respective HTTP RFC documents. NEW The HTTP version a "https" connection uses is negotiated between client and server using the TLS ALPN extension, described in Section 3.1 of [RFC9113] for HTTP/2 and Section 3.1 of [RFC9114] for HTTP/3. For a "http" connection, the explicit announcement of HTTP/2 or HTTP/3 support by the server is outside the scope of this document. Best, Lachlan On Sun, Apr 9, 2023 at 4:39 AM Sheng Jiang <[email protected]> wrote: > Hi,Lachlan, > > Thanks for your reply and address my comments. The sentence "The HTTP > version a connection uses is negotiated between client and server based on > the respective HTTP RFC documents." assuming that "HTTP RFC documents" are > some references in which the negotiation procedures have been defined. > > Regards, > > > -------------- > > > > Sheng Jiang > > > > >Hi Sheng, > > > > > > > > > >Thank you so much for taking the time to review the document. > > > > > > > > > >In regards to your comment, thank you for pointing out the ambiguity. For > > > > >some background clarification: > > > > > > > > > >Based on other review comments, Kai has since added a requirements section > > > > >about TIPS that mentions HTTP/1.x support is desired for "backwards > > > > >compatibility ... as many development tools and current ALTO > > > > >implementations are based on HTTP/1.x." Additionally, early versions of > > > > >this draft did constrain the HTTP version to HTTP/2 and HTTP/3 but after > > > > >the discussion with Mark Nottingham (after the HTTP early review) and the > > > > >chairs, we realize that the core of the design does not rely on HTTP/2 or > > > > >HTTP/3. Thus, the decision was to make the core mechanism independent of > > > > >HTTP versions but enable enhanced features when HTTP/2 or HTTP/3 is used. > > > > > > > > > >To specifically address your issue: the main loop of the TIPS protocol is > > > > >that a client receives successive incremental updates of a monitored > > > > >resource when the resource changes. This can be done with either Client > > > > >Pull defined in Section 6 or Server Push defined in Section 7. Client Pull > > > > >is predominately 1 outstanding request at a time to fetch the most recent > > > > >update which works regardless of the HTTP version. Server Push only works > > > > >over an HTTP/2 or /3 connection as HTTP/1.x doesn't support server push. > > > > > > > > > >Failures that cause a fallback to HTTP/1.x may include the ALTO server not > > > > >supporting, say, HTTP/2 or HTTP/3. In which case, the negotiation of the > > > > >HTTP protocol version is defined in the respective HTTP RFC documents and > > > > >falls outside of the TIPS protocol, which focuses on what goes on after a > > > > >persistent connection has been established. > > > > > > > > > >Here is the proposed modification to section 2.5 of the document to > clarify > > > > >this: > > > > >OLD > > > > ><name>TIPS with HTTP/1.x<name> > > > > > > > > > ><t>While TIPS is designed to take advantage of newer HTTP features, TIPS > > > > >still functions with HTTP/1.x for client pull functionality only, with the > > > > >limitation that it cannot cancel any outstanding requests or fetch > > > > >resources concurrently over the same connection.<t> > > > > > > > > > >NEW > > > > ><name>TIPS with Different HTTP Versions<name> > > > > > > > > > ><t>The HTTP version a connection uses is negotiated between client and > > > > >server based on the respective HTTP RFC documents.</t> > > > > > > > > > > <t>While TIPS is designed to take advantage of newer HTTP features like > > > > >server push and substreams for concurrent fetch, TIPS still functions with > > > > >HTTP/1.x for client pull defined in Section 6, with the limitation that it > > > > >cannot cancel any outstanding requests or fetch resources concurrently > over > > > > >the same connection due to the blocking nature of HTTP/1.x requests. > > > > >Additionally, because HTTP/1.x does not support server push, the use of > > > > >TIPS with server push defined in Section 7 is not available if a client > > > > >connects to an ALTO server with HTTP/1.x. If a client only capable of > > > > >HTTP/1.x desires to monitor multiple resources at the same time, it must > > > > >open multiple connections, one for each resource. For HTTP/2 and /3, > > > > >because of substreams, multiple resources can be monitored > > > > >simultaneously.</t> > > > > > > > > > >On Tue, Apr 4, 2023 at 3:58 AM Sheng Jiang via Datatracker < > [email protected]> > > > > >wrote: > > > > > > > > > >> Reviewer: Sheng Jiang > > > > >> Review result: Has Nits > > > > >> > > > > >> Reviewer: Sheng Jiang > > > > >> Review result: Ready with Nits > > > > >> > > > > >> I have reviewed this document as part of the OPS directorate's ongoing > > > > >> effort to review all IETF documents being processed by the IESG. > Comments > > > > >> that > > > > >> are not addressed in last call may be included in AD reviews during the > > > > >> IESG > > > > >> review. Document editors and WG chairs should treat these comments just > > > > >> like > > > > >> any other last call comments. > > > > >> > > > > >> Document: draft-ietf-alto-new-transport-07 > > > > >> Reviewer: Sheng Jiang > > > > >> Review Date: 2023-04-04 > > > > >> Result: Ready with Nits > > > > >> > > > > >> This document intents for Standards Track. It document specifies a new > > > > >> ALTO Transport Information Publication Service (TIPS), which takes > > > > >> advantage > > > > >> of HTTP/2 and later versions already support concurrent, non-blocking > > > > >> transport of multiple streams in the same HTTP connection. This document > > > > >> is well-written and READY with minor Nits (below) for publication. > > > > >> > > > > >> In section 2.5 "TIPS With HTTP/1.x". This document claims "TIPS > > > > >> still functions with HTTP/1.x for client pull functionality only, > > > > >> with the limitation that it cannot cancel any outstanding requests or > > > > >> fetch resources concurrently over the same connection." However, it > is > > > > >> unclear what operations/procedure defined in this document will fail > when > > > > >> TIPS work over HTTP/1.x (also whether there are scenarios the > server/client > > > > >> have to fall back to HTTP/1.x), the signal or error code the TIPS will > > > > >> provide, and how the server and client should act when these failures > > > > >> happen. > > > > >> > > > > >> This looks like an operational hole that authors must fill before > > > > >> publication. > > > > >> However, I am not sure, if there is no scenarios that the server/client > > > > >> have > > > > >> to fall back to HTTP/1.x, the authors may simply declare the TIPS SHOULD > > > > >> not > > > > >> work with HTTP/1.x. > > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > > >
_______________________________________________ alto mailing list [email protected] https://www.ietf.org/mailman/listinfo/alto
