Re: [Wish] should we remove the support for http redirections on initial PUT request?

Matt Ward <mattward@mux.com> Mon, 13 September 2021 17:36 UTC

Return-Path: <mattward@mux.com>
X-Original-To: wish@ietfa.amsl.com
Delivered-To: wish@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9D9F13A0EDE for <wish@ietfa.amsl.com>; Mon, 13 Sep 2021 10:36:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mux.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 ENdkeSbrPFYk for <wish@ietfa.amsl.com>; Mon, 13 Sep 2021 10:36:44 -0700 (PDT)
Received: from mail-ot1-x32a.google.com (mail-ot1-x32a.google.com [IPv6:2607:f8b0:4864:20::32a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 966603A0ED7 for <wish@ietf.org>; Mon, 13 Sep 2021 10:36:44 -0700 (PDT)
Received: by mail-ot1-x32a.google.com with SMTP id c8-20020a9d6c88000000b00517cd06302dso14360600otr.13 for <wish@ietf.org>; Mon, 13 Sep 2021 10:36:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mux.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=pb7l/Iiyg0LdPPDP5ulY56D8/dMXu9iYWKwPLq6H5hA=; b=Xm8PQ5Yu5pV20i8jDZIFvLBb7lnUiz1f+Lr4oGOGbpPDy2w14YQeOvibMSjBpBu3Iv rXEnz2p54ISXwBOx429GLgfoTCu/1w6aubGrFUN0W8COG1EZb93oI+HX7r+TCvn4SQZK CK8HZ0YbQRaC5iWvkKPZD+CtvSyXvVqYDuqBk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=pb7l/Iiyg0LdPPDP5ulY56D8/dMXu9iYWKwPLq6H5hA=; b=D5IXrpWvcrhBu4qKcakFYF6W8wgb5XXISByhNa4j4bxGrZlOo3V7XzUgp5V4jAPCj+ /wknOz4uJ3OrzaPC6Yt2lQmm2Dh4fvoWjl9X8puGXpXTGyxnliAdmG1IA1PJ27gRZ+eM jlDWeOYPldXvOO9Bw5Gtvq3cADr3E/zk6drqj9KUj8KL2knsc1TZ0rkGZplyDPMsl8yH F4o/9r7M/0doN01f5xeR8yBHjemj1fRvFmrb3mEfsz9hcovA9/S1x4hPI3IWj/WLJvub 4vDyu94L5bQiQjzwA2PYEFNQImYeBijK62sDTfox0FX/I0ltGquazUKc+sVC4pagluVi Zj/w==
X-Gm-Message-State: AOAM533GUPCtA++jeiUavIDMlP5xeiamkU0qIxDY2wvmo02hWEdQUr69 9yn3Mli8aZayVtxojNM1i4wQGqC/12oysUJWD4F7ZMm2HPcjWA==
X-Google-Smtp-Source: ABdhPJwr0BQ7rkywkSzEqx11SKDDqFb8+NB88LCIEAcGIsIt72/C7QGx9NWrXjznhtpqLDvYB4X/mrS1FyfnDnFNd5M=
X-Received: by 2002:a9d:5f9d:: with SMTP id g29mr11071627oti.10.1631554601725; Mon, 13 Sep 2021 10:36:41 -0700 (PDT)
MIME-Version: 1.0
References: <CA+ag07ZM3_UYYSZpRuyJ0ONy9g_C3sYYXVSqVEk-SdUK9tcPOQ@mail.gmail.com> <87fsu8foia.wl-jch@irif.fr> <CAABnt0Pr758_1dXnxUq1iD8br-9L6ktHvPGVj4FQBAxXi0iW6g@mail.gmail.com> <CA+ag07bq08LbaH7uvx30nZELpJN+KS8EUpzjmi6k0zBRiYXhhA@mail.gmail.com>
In-Reply-To: <CA+ag07bq08LbaH7uvx30nZELpJN+KS8EUpzjmi6k0zBRiYXhhA@mail.gmail.com>
From: Matt Ward <mattward@mux.com>
Date: Mon, 13 Sep 2021 10:36:31 -0700
Message-ID: <CAABnt0MJQH=MXd6e+Zmjj0WULZBxaf=q2E9V8AGTtwDtkgcjWQ@mail.gmail.com>
To: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
Cc: Juliusz Chroboczek <jch@irif.fr>, WISH List <wish@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000077c54605cbe3e877"
Archived-At: <https://mailarchive.ietf.org/arch/msg/wish/9QAAJ6Wc1eeVeOWkPr4f3Fiscqs>
Subject: Re: [Wish] should we remove the support for http redirections on initial PUT request?
X-BeenThere: wish@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: WebRTC Ingest Signaling over HTTPS <wish.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wish>, <mailto:wish-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wish/>
List-Post: <mailto:wish@ietf.org>
List-Help: <mailto:wish-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wish>, <mailto:wish-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Sep 2021 17:36:50 -0000

I think in a new server, architecture 2/decoupled will be favored by
experienced engineers such as yourself. I also think that adding support
for this protocol into existing media servers may lean more closely to
architecture 1/all-in-one.

Chrome follows 307s when sending a PUT by default. Do you know of an HTTP
client library that does not?

On Mon, Sep 13, 2021 at 10:13 AM Sergio Garcia Murillo <
sergio.garcia.murillo@gmail.com> wrote:

>
>
> El lun, 13 sept 2021 a las 19:07, Matt Ward (<mattward@mux.com>) escribió:
>
>> I think this decision to require 307 support in a client is trading off
>> client and server complexity. I think the place to start answering this
>> question is to empathize with a couple different server architectures.
>>
>> 1- All-in-One - In this case all the pieces are bundled into a single
>> server. This means the WHIP endpoint/resource and the media server all
>> reside in a single process/process tree. Scaling is done by moving to
>> larger machines as Juliusz mentions they have done successfully. In this
>> case, a 307 from one server to another server makes scaling a bit easier.
>>
>> 2- Decoupled - In this case, the WHIP endpoint and media server are
>> decoupled and scaled independently. The WHIP endpoint is basically load
>> balanced the way most people approach this for API servers. In handling the
>> request for the WHIP endpoint, a media server is allocated + SDP crafted
>> directly in the WHIP endpoint. This allocation and SDP reply pointing to
>> the correct media server is the load balancing layer for this system and
>> therefore a 307 is not necessary.
>>
>> I'd expect a lot of implementations to follow closer to architecture 1
>> than 2, as this more closely aligns with what we see today in the open
>> source SFU space. If we believe this, we may desire keeping the 307
>> support. Web browsers support this without any additional effort (fetch
>> follows redirects just fine. Native clients may have a more diverse set of
>> HTTP stacks, but most of the iOS + Android apps I have worked on have no
>> problem at all following 307s.
>>
>>>
>>>
> I added the 307 redirection because I was going to implement 2) decoupled
> myself, but when implementing it, I found that it was much easier for me to
> just do a request from the balancer to the media server forwarding the SDP
> offer and sending back the sdp answer back to the client than sending the
> 307 redirect response. It would also be more effective as I can get rid of
> one round trip and avoid the client having the SDP twice.
>
> Regarding the support in libraries, please double check that the
> redirection is done with PUT and a body, because we have found that this
> may not be a common practice.
>
> Best regards
> Sergio
>
>
>
>