Hi, Lachlan,

Thanks for address my comments and this further investigation. This looks much 
more precise.

Regards,


--------------



Sheng Jiang



>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

Reply via email to