Re: I-D Action: draft-ietf-httpbis-rand-access-live-03.txt

Thomas Peterson <hidinginthebbc@gmail.com> Wed, 21 March 2018 14:19 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
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 F2F8012D9FF for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 21 Mar 2018 07:19:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.761
X-Spam-Level:
X-Spam-Status: No, score=-6.761 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SOuaOQKyG7e2 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 21 Mar 2018 07:19:46 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 208D61271FD for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 21 Mar 2018 07:19:45 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.89) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1eyeRX-0007Dq-QK for ietf-http-wg-dist@listhub.w3.org; Wed, 21 Mar 2018 14:10:19 +0000
Resent-Date: Wed, 21 Mar 2018 14:10:19 +0000
Resent-Message-Id: <E1eyeRX-0007Dq-QK@frink.w3.org>
Received: from mimas.w3.org ([128.30.52.79]) by frink.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from <hidinginthebbc@gmail.com>) id 1eyeRO-0007Cj-6z for ietf-http-wg@listhub.w3.org; Wed, 21 Mar 2018 14:10:10 +0000
Received: from mail-wr0-f169.google.com ([209.85.128.169]) by mimas.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from <hidinginthebbc@gmail.com>) id 1eyeRF-00055W-7t for ietf-http-wg@w3.org; Wed, 21 Mar 2018 14:10:09 +0000
Received: by mail-wr0-f169.google.com with SMTP id u46so5324116wrc.11 for <ietf-http-wg@w3.org>; Wed, 21 Mar 2018 07:09:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=tMHWaxDDincvPrx4YmXebBCTiN9upfKu6+HeXaoS7xw=; b=dJB6IAO+adeGL5MTWGwrovdBxTRFqfply3oisoKwd3pwR2sg0E3r1QFGJR6Sl1r1mh KfKEZH49y9k/FREhY+6UMHdb0BxU0Kiea8b9S9kqNXdJAY7QXDs+sxYeNMaaxbmMuCTz 47aFF8LpO+hffGnUm9XaHAO8Y8ZaCJj0WO7E201aRT2ieeSdFs+fzvHjvJ1Blkiv3MAd Ku85vcRRcG5d1YpzL0R4Xb7SjBKdg91XXkzCrO8UduNMzMwj00tpQDCBCNQgzxBq+tpl x//z6Z84bqJPU0BHoXNc/ALzWH2jgv/9R7pZJ1yiuQofIsd3XEh1UCZ4TucxgqYdun4S 0Xcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=tMHWaxDDincvPrx4YmXebBCTiN9upfKu6+HeXaoS7xw=; b=iNrffWsbJtSXSwqRTCnywVFFN8jNuVdVvydp6Doabbrl7A8zBkfDvd9LuHy6gPbgH6 d/228kL8EoQbv8q3wrVvLIcXKuddAYdqPqG7zUqhn9bnKfLEg7afBkpkd+UpcJpR7v7k y+fijHUlAf7202h+vTyHsPap5jEkXjUVr5XZixy3wtQADBrokA2rVOxr2RBYTqFdws0Z 72NSkpv0hlrFztqCRtAj8icSgsf6S1+lKE9SsQjHtFZL3jwjIHmN+hnU2gEtfJkSjTsp 1hBfcl9oJc0gxDVRFqfq0RucvbyvOXMiJjnME0LqjI4F4KDfAvLpYdDy7W6AXOrToQC8 zG8Q==
X-Gm-Message-State: AElRT7HIR9m7OyNpNWtQsEzuOrLFPGWwhxNFpeBkqH+hy8QTIn+iR409 8ka7txZMOCRtPbAPvfMtu8UvUg==
X-Google-Smtp-Source: AG47ELtl+p9qf9MV/5ErRdDxvQnheC/4FJH0H51DvSwPYpqNKB6VO5ouu9bGFOlTLj1jf9901HsJ3Q==
X-Received: by 10.223.184.109 with SMTP id u42mr14753062wrf.3.1521641378777; Wed, 21 Mar 2018 07:09:38 -0700 (PDT)
Received: from raspberrypi ([2a02:c7f:629:a400:350:885e:dce0:c58d]) by smtp.gmail.com with ESMTPSA id t132sm5134043wme.8.2018.03.21.07.09.37 for <ietf-http-wg@w3.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 21 Mar 2018 07:09:38 -0700 (PDT)
Date: Wed, 21 Mar 2018 14:09:36 +0000
From: Thomas Peterson <hidinginthebbc@gmail.com>
To: ietf-http-wg@w3.org
Message-ID: <20180321140917.GA14324@raspberrypi>
References: <152154837826.9793.17629316745234842173@ietfa.amsl.com> <20180320141231.GB11174@raspberrypi> <f3ff3d24-34be-abca-dbf5-add21ddcc72f@ecaspia.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f3ff3d24-34be-abca-dbf5-add21ddcc72f@ecaspia.com>
User-Agent: Mutt/1.5.23 (2014-03-12)
X-W3C-Hub-Spam-Status: No, score=-4.0
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: mimas.w3.org 1eyeRF-00055W-7t b2d45e52127d6afbfaab0b70d3d57caf
X-Original-To: ietf-http-wg@w3.org
Subject: Re: I-D Action: draft-ietf-httpbis-rand-access-live-03.txt
Archived-At: <https://www.w3.org/mid/20180321140917.GA14324@raspberrypi>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/35191
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/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Thank you for your response.

My failure considerations are not around a server failing to acquire live
content, but the scenario when the server itself fails, resulting in the
connection to the client to close and the client may reconnect. In this scenario
(which can be complicated further by having n servers fronted by a load
balancer, which each server reporting different byte ranges for the same asset)
it's not clear to me from the document what a client may do, however as you put
it this may be too format specific to introduce into the specification. Perhaps
there is benefit to including something like:

    "A client that may have been disconnected and wishing to continue to receive
    only newly-aggregated portions SHOULD perform a HEAD request to learn of any
    potential changes in the range available before making a subsequent GET".

I hope that clears the point I'm trying to make.

Regards

On Wed, Mar 21, 2018 at 12:37:29AM -0700, Craig Pratt wrote:
> <html>
>   <head>
>     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
>   </head>
>   <body text="#000000" bgcolor="#FFFFFF">
>     <div class="moz-cite-prefix">Thanks Thomas for the
>       suggestion/questions. <br>
>       <br>
>       My thoughts in-line...<br>
>       <br>
>       cp<br>
>       <br>
>       On 3/20/18 7:12 AM, Thomas Peterson wrote:<br>
>     </div>
>     <blockquote type="cite"
>       cite="mid:20180320141231.GB11174@raspberrypi">
>       <pre wrap="">A question I have with this draft is the behaviour or expectations that may or
> may not occur during failure modes, particularly when a "reset" or roll-over
> happens on the server side. Consider the scenario when the server byte-offset is
> effective reset, and thus it's "range" has shifted beyond the client's
> expectations.</pre>
>     </blockquote>
>     When a server encounters an error acquiring the live content it's
>     incorporating into the representation (e.g. a discontinuity) there
>     are a couple options that come to mind: (1) stop appending the
>     content into the representation (and optionally start a new one), or
>     (2) append the content in a content-type-specific way that the
>     client can digest/comprehend.<br>
>     <br>
>     Either way, the client wouldn't receive a non-success HTTP status
>     code when transferring content on each side of the discontinuity. In
>     the case of (1), the content would just no longer grow (effectively
>     becoming a static representation). For (2) the only effect would be
>     a momentary decrease in the transmitted bitrate during the period of
>     discontinuity. (you could see this effect periodically in the
>     results I presented at IETF 100) To the client, it looks like one
>     contiguous sequence of data.<br>
>     <br>
>     So at this point, you might be thinking "this explanation on
>     discontinuities is what should be in the draft RFC". I don think it
>     would be great if there was more guidance on live content. The issue
>     there is that (a) dealing with discontinuities is fairly
>     format-specific, (b) the guidance applies to non-random access cases
>     equally, and (c) I'm not sure it has to do with with the "transfer"
>     aspect of HTTP - since my argument above is that the server-side
>     failure modes really affect the *constitution/construction* of the
>     representation and not the *transfer* of it. (as I still consider
>     myself a newb in the httpbis group, maybe someone can clarify my
>     understanding) <br>
>     <br>
>     If only (a) and (b) apply, there might be a case to be made for a
>     format-agnostic "Live Content and Errors/Discontinuities" draft RFC.
>     But my thinking has been that it's a bit too far out of scope for
>     this draft. <br>
>     <br>
>     <blockquote type="cite"
>       cite="mid:20180320141231.GB11174@raspberrypi">
>       <pre wrap="">I don't see any reference in this draft that explicitly call out when 416
> responses should be sent. Should these things be called out?
> 
> Regards</pre>
>     </blockquote>
>     <br>
>     I think this statement from RFC-7233 (section 4.4) describes the 416
>     cases pretty well: <br>
>     <blockquote><tt>The 416 (Range Not Satisfiable) status code
>         indicates that none of</tt><br>
>       <tt>the ranges in the request’s Range header field (Section 3.1)
>         overlap</tt><br>
>       <tt>the current extent of the selected resource</tt><br>
>     </blockquote>
>     Unfortunately, section 4.4 trips over itself a bit when it tries to
>     talk about byte-range-specific simplifications. But I don't think
>     it's appropriate to clarify this in our draft. (Perhaps this can be
>     cleaned up as part of HTTPter?)<br>
>     <br>
>     And while it might be useful to provide examples in the draft, I've
>     tried to provide examples of ways to interact with a
>     live/aggregating server that should *avoid* 416 errors (and get 206
>     instead). But the cool thing about the way that 7233 is written is
>     that a client can really respond to a 206 and 416 similarly - since
>     they both include a Content-Range response header.<br>
>     <br>
>     Anyway, hope this helps. And please let me know if I'm missing
>     something (like the point of your question)...<br>
>     <blockquote type="cite"
>       cite="mid:20180320141231.GB11174@raspberrypi">
>       <pre wrap="">
> 
> On Tue, Mar 20, 2018 at 05:19:38AM -0700, <a class="moz-txt-link-abbreviated" href="mailto:internet-drafts@ietf.org">internet-drafts@ietf.org</a> wrote:
> </pre>
>       <blockquote type="cite">
>         <pre wrap="">
> A New Internet-Draft is available from the on-line Internet-Drafts directories.
> This draft is a work item of the Hypertext Transfer Protocol WG of the IETF.
> 
>         Title           : HTTP Random Access and Live Content
>         Authors         : Craig Pratt
>                           Darshak Thakore
>                           Barbara Stark
> 	Filename        : draft-ietf-httpbis-rand-access-live-03.txt
> 	Pages           : 11
> 	Date            : 2018-03-20
> 
> Abstract:
>    To accommodate byte range requests for content that has data appended
>    over time, this document defines semantics that allow a HTTP client
>    and server to perform byte-range GET and HEAD requests that start at
>    an arbitrary byte offset within the representation and ends at an
>    indeterminate offset.
> 
> 
> The IETF datatracker status page for this draft is:
> <a class="moz-txt-link-freetext" href="https://datatracker.ietf.org/doc/draft-ietf-httpbis-rand-access-live/">https://datatracker.ietf.org/doc/draft-ietf-httpbis-rand-access-live/</a>
> 
> There are also htmlized versions available at:
> <a class="moz-txt-link-freetext" href="https://tools.ietf.org/html/draft-ietf-httpbis-rand-access-live-03">https://tools.ietf.org/html/draft-ietf-httpbis-rand-access-live-03</a>
> <a class="moz-txt-link-freetext" href="https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rand-access-live-03">https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rand-access-live-03</a>
> 
> A diff from the previous version is available at:
> <a class="moz-txt-link-freetext" href="https://www.ietf.org/rfcdiff?url2=draft-ietf-httpbis-rand-access-live-03">https://www.ietf.org/rfcdiff?url2=draft-ietf-httpbis-rand-access-live-03</a>
> 
> 
> Please note that it may take a couple of minutes from the time of submission
> until the htmlized version and diff are available at tools.ietf.org.
> 
> Internet-Drafts are also available by anonymous FTP at:
> <a class="moz-txt-link-freetext" href="ftp://ftp.ietf.org/internet-drafts/">ftp://ftp.ietf.org/internet-drafts/</a>
> 
> 
> </pre>
>       </blockquote>
>       <pre wrap="">
> </pre>
>     </blockquote>
>     <p><br>
>     </p>
>     <div class="moz-signature">-- <br>
>       <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
>       <meta http-equiv="Content-Style-Type" content="text/css">
>       <title></title>
>       <meta name="Generator" content="Cocoa HTML Writer">
>       <meta name="CocoaVersion" content="1038.36">
>       <style type="text/css">
>     p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Lucida Console'}
>     p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
>     table.t1 {border-collapse: collapse}
>     td.td1 {background-color: #bffdba; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 0.0px 5.0px 0.0px 5.0px}
>     td.td2 {background-color: #9fd39b; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 0.0px 5.0px 0.0px 5.0px}
>     td.td3 {background-color: #78a075; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 0.0px 5.0px 0.0px 5.0px}
>   </style>
>       <table class="t1" cellspacing="0" cellpadding="0">
>         <tbody>
>           <tr>
>             <td class="td1" valign="middle">
>               <p class="p1">craig pratt</p>
>               <p class="p1">caspia consulting</p>
>               <p class="p1"><a class="moz-txt-link-abbreviated" href="mailto:craig@ecaspia.com">craig@ecaspia.com</a></p>
>               <p class="p1">503.706.2933</p>
>             </td>
>             <td class="td2" valign="middle">
>               <p class="p2"><br>
>               </p>
>             </td>
>             <td class="td3" valign="middle">
>               <p class="p2"><br>
>               </p>
>             </td>
>           </tr>
>         </tbody>
>       </table>
>       <p class="p2"><br>
>       </p>
>     </div>
>   </body>
> </html>
>