How to reset ALTSVC

Bence Béky <bnc@chromium.org> Tue, 31 March 2015 20:55 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 (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EE3D51ACEE7 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 31 Mar 2015 13:55:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.089
X-Spam-Level:
X-Spam-Status: No, score=-6.089 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_HI=-5, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 0azo1hd8PELh for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 31 Mar 2015 13:55:10 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 21B421ACEDF for <httpbisa-archive-bis2Juki@lists.ietf.org>; Tue, 31 Mar 2015 13:55:10 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1Yd39V-0003I7-Sq for ietf-http-wg-dist@listhub.w3.org; Tue, 31 Mar 2015 20:52:49 +0000
Resent-Date: Tue, 31 Mar 2015 20:52:49 +0000
Resent-Message-Id: <E1Yd39V-0003I7-Sq@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.80) (envelope-from <bnc@google.com>) id 1Yd39O-0003HM-Kr for ietf-http-wg@listhub.w3.org; Tue, 31 Mar 2015 20:52:42 +0000
Received: from mail-qc0-f179.google.com ([209.85.216.179]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <bnc@google.com>) id 1Yd39N-0002w7-4C for ietf-http-wg@w3.org; Tue, 31 Mar 2015 20:52:42 +0000
Received: by qcay5 with SMTP id y5so24872163qca.1 for <ietf-http-wg@w3.org>; Tue, 31 Mar 2015 13:52:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:sender:from:date:message-id:subject:to:content-type; bh=S4ePec6pS1ed1m6v7OdwZQiaeYpHhYxWfFjPwiVPxoA=; b=XpaWCScRuzNnaUO5lBEwvNQLAcbu7BKnjttoFTjIpT7m7ifXseNOJhDksOEtumTs9V m2zzClEDlrkmCvxH4y1Mn4FcNqc6Quk0OE48Kel/RqxtiJdf36ikMF2dhUpeKv1Y1ijs A1Vc5UqMKePTLZhAX5U5OGokVbi9n5xneX80R21iLN9rCwKZrx2VoiiQNyRotJW1KYd3 b64frJdAjP5Eb6p1wG74DM4JTRR1u53uaxDTFPLy0sO2ITGQ7j6GCbd7nLs89CWW4mDV jAy5nziNKkSiBhLDKrE+c3J7AHR30bQXl4QkOfiZwVpF1dvKsv82K7uPRsr89yd3S6KV 9Ezg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:sender:from:date:message-id:subject:to:content-type; bh=S4ePec6pS1ed1m6v7OdwZQiaeYpHhYxWfFjPwiVPxoA=; b=QcKoiEuW7AoaFKHZIf1W8AvUaCC09HCN2tAKRqihuUU6f2uN76iV4+1yp+huxTEtoy i7QE+niv3k0D+fOYjvDcDfQh2K8GWcvKsnMw/gVGSojKzcc46y98Qlx4XpMYuzN4aWNv R0PJsOyaC8aaV4pJ2k5YTdiQSG+A4yjnRrGQk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to:content-type; bh=S4ePec6pS1ed1m6v7OdwZQiaeYpHhYxWfFjPwiVPxoA=; b=CoTvRxifIC9LRO/3jxaFJddSEpqY7bE2eE87AYIWerBwz5C/t/pQ8yd58lnG8HoHkz BKHzCseEQxP2Wn+3sRdej41SljpCaGlWYldITJDR5Z2uPAyicsU4eUhQz13kenIj6T5f i2XFeFU5mQdcbcgzjri+J4EURVm8w/0puFjN1bltXZmQMN6BGbPIu8SHqtThkYObFfVD RpBk0zREdcDxC6wBX7tY7e+7cEtjUg8gNtqufkIvnYlkFcRUTTC825V0la+HQzZCa7sV wKE9mYVavNzvqwWjtG2nP0tMZWcOBNQSYLJPQnBQt8ODvlbv6Zt+GeRWKo8eRf6L4Yef 39CQ==
X-Gm-Message-State: ALoCoQlokL1T72p8j1rKZYFwAsVGyBbxKSGBrQtP6pNGzsrBFtFkesrJl4i1WUf7vte81jy1+fWh
X-Received: by 10.140.201.74 with SMTP id w71mr39025634qha.51.1427835135180; Tue, 31 Mar 2015 13:52:15 -0700 (PDT)
MIME-Version: 1.0
Sender: bnc@google.com
Received: by 10.229.178.6 with HTTP; Tue, 31 Mar 2015 13:51:54 -0700 (PDT)
From: Bence Béky <bnc@chromium.org>
Date: Tue, 31 Mar 2015 16:51:54 -0400
X-Google-Sender-Auth: Q0dI7nZwQ24Jca-RwqErS-mrJW0
Message-ID: <CACMu3tp8EeMxfgbB4tf2u8mxxnadno6mYEgqbPdb+gEVmVjPow@mail.gmail.com>
To: HTTP <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="001a114335c607f1cf05129bc627"
Received-SPF: pass client-ip=209.85.216.179; envelope-from=bnc@google.com; helo=mail-qc0-f179.google.com
X-W3C-Hub-Spam-Status: No, score=-5.0
X-W3C-Hub-Spam-Report: AWL=-0.340, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: lisa.w3.org 1Yd39N-0002w7-4C c7f3ae08d1159e12b880c0cd20a831ed
X-Original-To: ietf-http-wg@w3.org
Subject: How to reset ALTSVC
Archived-At: <http://www.w3.org/mid/CACMu3tp8EeMxfgbB4tf2u8mxxnadno6mYEgqbPdb+gEVmVjPow@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/29139
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>

Hi,

I would like to be able to construct HTTP/1.1 Alt-Svc headers and HTTP/2
ALTSVC frames that indicate that the client should forget all previously
discovered alternative services for that given origin.  (With the caveat
from the earlier "Alt-Svc alternative cache invalidation (ext#16)" thread
that they would only invalidate alternative services that came from the
same discovery mechanism.)  The most obvious way would be to send an
Alt-Svc header field with an empty value, or an HTTP/2 ALTSVC frame with an
empty Alt-Svc-Field-Value.  However, the current draft
<https://tools.ietf.org/id/draft-ietf-httpbis-alt-svc-06.html> calls for at
least one alternative in Section 3, and a mandatory Alt-Svc-Field-Value
field in Section 4.  I propose to allow zero alternatives like this:

Alt-Svc = *( alternative *( OWS ";" OWS parameter ) )

and to make Alt-Svc-Field-Value optional.

Here is an example use case: the client visits foo.com and gets an Alt-Svc
header field or ALTSVC frame pointing to bar.com.  Later bar.com goes down
for maintenance.  When the client visits foo.com the second time, it turns
to foo.com only.  (Either because it happens to have a connection open to
foo.com for another service, or because it observes the probability
parameter of alternative services and the coin flip went that way, or it
has foo.com's IP address cached, or for any other reason.)  At this time,
bar.com is down, and foo.com would really love to tell the client about
it.  But it cannot, and the third time the client tries to connect to
bar.com (for whatever reason), and wastes the user's time waiting for a
connection that will never go through.

Or even if the client tries to connect to both foo.com and bar.com at the
same time, if it happens to be that bar.com is a live server but no longer
providing service for foo.com (which the client will discover after the TLS
handshake when seeing that the certificate is not valid for foo.com) then
resources are wasted on both the client and bar.com.  During the previous
request to foo.com, the server could have told the client about that.

Thank you,

Bence