Alt-Svc-Used indicator granularity (ext#34)

Erik Nygren <erik@nygren.org> Fri, 22 August 2014 22:41 UTC

Return-Path: <ietf-http-wg-request@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 (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C64E21A6F98 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 22 Aug 2014 15:41:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.947
X-Spam-Level:
X-Spam-Status: No, score=-6.947 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.668, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
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 h_ib8iXC6kM9 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 22 Aug 2014 15:41:31 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5C61C1A6F91 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 22 Aug 2014 15:41:31 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1XKxTz-0007ZM-3L for ietf-http-wg-dist@listhub.w3.org; Fri, 22 Aug 2014 22:38:55 +0000
Resent-Date: Fri, 22 Aug 2014 22:38:55 +0000
Resent-Message-Id: <E1XKxTz-0007ZM-3L@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <nygren@gmail.com>) id 1XKxTe-0007VV-Sk for ietf-http-wg@listhub.w3.org; Fri, 22 Aug 2014 22:38:34 +0000
Received: from mail-vc0-f178.google.com ([209.85.220.178]) by maggie.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <nygren@gmail.com>) id 1XKxTe-0007Ac-1b for ietf-http-wg@w3.org; Fri, 22 Aug 2014 22:38:34 +0000
Received: by mail-vc0-f178.google.com with SMTP id la4so12841101vcb.23 for <ietf-http-wg@w3.org>; Fri, 22 Aug 2014 15:38:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:message-id:subject:from:to:content-type; bh=8oQvg69xc9itOrZxxrn/Cun+tDXJg2ybmCUPvcornQ8=; b=VDoh9c1s6oUtBNZHkZX/yv9DaH2p+U31QYTQbZ7V8otCy0lOJGqsaxyHP+PeJJhTdb KCZSsx4Oh9B2PALknhT0r4O14Q135Get7Jg5aasCA7lMHuG6y4Ot+3odV0UvZVVxfFEa l9Y1qhT3KdqsS6Kpd5CRlp7RRJQRmVJQdQ2p5pz5nNHD0KNKv59kgjjZZVbognPTnh7b P5Owh66CAUoUW9badBOqrVWWQoOHvLUue9ENXBcZggWewd9V3s/K82qTkjghfVesdFi5 vX0/2+SzRL32OmPj2kxq+/Vf2lu+Tg6NSwYAz9Ie5i1IQIhJV7YrcLpKJitlmsRsOW/N E21Q==
MIME-Version: 1.0
X-Received: by 10.220.79.68 with SMTP id o4mr1994460vck.38.1408747088378; Fri, 22 Aug 2014 15:38:08 -0700 (PDT)
Sender: nygren@gmail.com
Received: by 10.221.11.16 with HTTP; Fri, 22 Aug 2014 15:38:08 -0700 (PDT)
Date: Fri, 22 Aug 2014 18:38:08 -0400
X-Google-Sender-Auth: XLtAhDGYi5JZWZKkNRzjkqoZFos
Message-ID: <CAKC-DJiKg4OopATYgjcO7SBPNJ7t6+LA1bPWemjXL8e54gwrsw@mail.gmail.com>
From: Erik Nygren <erik@nygren.org>
To: "ietf-http-wg@w3.org Group" <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="047d7b3a88f6c8003605013f7d2d"
Received-SPF: pass client-ip=209.85.220.178; envelope-from=nygren@gmail.com; helo=mail-vc0-f178.google.com
X-W3C-Hub-Spam-Status: No, score=-3.4
X-W3C-Hub-Spam-Report: AWL=-2.675, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: maggie.w3.org 1XKxTe-0007Ac-1b c77ea5c289286ebc9db7137a663a92a3
X-Original-To: ietf-http-wg@w3.org
Subject: Alt-Svc-Used indicator granularity (ext#34)
Archived-At: <http://www.w3.org/mid/CAKC-DJiKg4OopATYgjcO7SBPNJ7t6+LA1bPWemjXL8e54gwrsw@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/26713
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: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

For discussion of https://github.com/httpwg/http-extensions/issues/34

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

 The current Alt-Svc-Used indicator is a boolean ("0"/"1"), due to the
desire to preserve privacy.
Based on some explorations of how this would be implemented on the server
side, we realized that this doesn't provide enough information to
distinguish between the different use-cases for Alt-Svc. In particular, a
server would have no way to know if just the protocol was changed, or if
both the protocol and host were changed. If we start using multiple Alt-Svc
sources (such as DNS) this also becomes relevant.

An option short of including (proto,host,port) in Alt-Svc-Used would be to
include a better indicator of how the Alt-Svc was used. This could be
either a bitmask or a string of tokens. For example, with a bitmask:

   - 1 = Alt-Svc was used to change protocol (ie, service proto != default
   origin scheme's proto)
   - 2 = Alt-Svc was used to change port (ie, service port != origin port)
   - 4 = Alt-Svc was used to change host (ie, service host != origin host)
   - 8 = Alt-Svc was obtained via Alt-Svc header
   - 16 = Alt-Svc was obtained via ALTSVC frame
   - 32 = Alt-Svc was obtained via DNS record (reserved, not yet defined)

With a token approach, short character strings could replace the bitmask.
In either case this would result in a value like:

Alt-Svc-Used: 20
Alt-Svc-Used: h,f

For load-balancing, this would make it possible to infer the
(proto,host,port) that may have been used in cases where it differs by
use-case but is consistent within a use-case.

This would also significantly help with debuggability on the server side.

(that Issue also mentions some editorial issues that we should resolve
after answering this.)