RFC 7838 ALTSVC Frame

Cory Benfield <cory@lukasa.co.uk> Thu, 14 April 2016 08:51 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 C428B12E3CF for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 14 Apr 2016 01:51:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.917
X-Spam-Level:
X-Spam-Status: No, score=-7.917 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.996, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=lukasa-co-uk.20150623.gappssmtp.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 f7D83vuZ8hkX for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 14 Apr 2016 01:51:27 -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 3BAAB12E3EF for <httpbisa-archive-bis2Juki@lists.ietf.org>; Thu, 14 Apr 2016 01:51:27 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1aqcvU-0003UW-OY for ietf-http-wg-dist@listhub.w3.org; Thu, 14 Apr 2016 08:47:00 +0000
Resent-Date: Thu, 14 Apr 2016 08:47:00 +0000
Resent-Message-Id: <E1aqcvU-0003UW-OY@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <cory@lukasa.co.uk>) id 1aqcvR-0003TI-M3 for ietf-http-wg@listhub.w3.org; Thu, 14 Apr 2016 08:46:57 +0000
Received: from mail-wm0-f42.google.com ([74.125.82.42]) by lisa.w3.org with esmtps (TLS1.2:RSA_ARCFOUR_SHA1:128) (Exim 4.80) (envelope-from <cory@lukasa.co.uk>) id 1aqcvP-0001Ab-U6 for ietf-http-wg@w3.org; Thu, 14 Apr 2016 08:46:57 +0000
Received: by mail-wm0-f42.google.com with SMTP id u206so114847980wme.1 for <ietf-http-wg@w3.org>; Thu, 14 Apr 2016 01:46:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lukasa-co-uk.20150623.gappssmtp.com; s=20150623; h=from:subject:date:message-id:to:mime-version; bh=54Yn3F0d62b/3hXDMG7zxkd7dKm/qGaJsiRfFyK6o3A=; b=ls7JH7Yq/oMrryiDH7BIXRKf+XNKSi6WnyqU1m1DIWR1IPpkPeV2RwJAHymBGoE0Y4 9EgWLCxquvClDED1t3JadsgjMutgirUqAOGEGy+iF4KKWLopmsXIMbjI5F4hk4Ak/SeY 3PerX8p53TYjHXp3AHxMrAm4/Nb34TzgFLbe8gZSfE6rez1KkPWTnzpquuBB9ePdnq8O na7Ql3uUgEvN/GcFAtQ9U8Nh2QPo9/bYsSb6ZCSNQ8QDGloGiIA/RdcMvsZcB+nQ5dkh A0TEQGYpFZ00+jm6u6DThqeic0kf3wC0ZMKII5nw8lIKWzOmE4sQfzj+dumu6jvPfGT3 camQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:subject:date:message-id:to:mime-version; bh=54Yn3F0d62b/3hXDMG7zxkd7dKm/qGaJsiRfFyK6o3A=; b=X8pJKel1BBMEgxUjnnOSf3znhM+x325ebv85NFos9zbjn6l7a8duIrKPidt5eJtFVv Ql/DHIoulkj4xa7UsuBFipTFt474nEIQosynZdU+C5QtinnaHZmobQ8g7dBnTgUjeoK3 k/EHzEjI/3PwKZTdqwg/zRrGBgRok1jQNx8Agptf7O3A/7dWnEHRVMDIcOXrenIqNZe4 nMwpFdUtBOSDUqpXCV9V0gxhNtO4ArFg9qv35PXAGXh+87zUu1chrG8hMgL8ot7gNU6o cXTsQ8TpgpHwj69xii5c7OqQ+emrOfuOlJfv6AtKm5D55qiJh3mzksmsENCF8K0whY+o AqQQ==
X-Gm-Message-State: AOPr4FXXfwSj9fZ1hJJrQRh0YoX0+qwzCZEVccowuMfnwUPKG12ll2tvjwoGNIGRG6aDvg==
X-Received: by 10.28.141.18 with SMTP id p18mr14805119wmd.57.1460623589203; Thu, 14 Apr 2016 01:46:29 -0700 (PDT)
Received: from [192.168.1.6] (41.65.125.91.dyn.plus.net. [91.125.65.41]) by smtp.gmail.com with ESMTPSA id cb2sm42771117wjc.16.2016.04.14.01.46.28 for <ietf-http-wg@w3.org> (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 14 Apr 2016 01:46:28 -0700 (PDT)
From: Cory Benfield <cory@lukasa.co.uk>
X-Pgp-Agent: GPGMail 2.6b2
Content-Type: multipart/signed; boundary="Apple-Mail=_0A064348-F064-46C5-8F71-948787DD14B0"; protocol="application/pgp-signature"; micalg="pgp-sha256"
Date: Thu, 14 Apr 2016 09:46:27 +0100
Message-Id: <BACC9A69-E230-49C4-B188-BA892C63C158@lukasa.co.uk>
To: HTTP WG <ietf-http-wg@w3.org>
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
X-Mailer: Apple Mail (2.3124)
Received-SPF: pass client-ip=74.125.82.42; envelope-from=cory@lukasa.co.uk; helo=mail-wm0-f42.google.com
X-W3C-Hub-Spam-Status: No, score=-4.6
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: lisa.w3.org 1aqcvP-0001Ab-U6 d04460abd39e4ce41dddaab092976130
X-Original-To: ietf-http-wg@w3.org
Subject: RFC 7838 ALTSVC Frame
Archived-At: <http://www.w3.org/mid/BACC9A69-E230-49C4-B188-BA892C63C158@lukasa.co.uk>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/31452
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>

All,

I’m implementing support in hyper-h2 for the ALTSVC frame as specified in RFC 7838. However, a detailed read of RFC 7838 does not appear to define what stream state the ALTSVC frame may be sent in. This is in contrast to the frames in RFC 7540 which explicitly list in which stream states they are acceptable.

The closest I can see is an allusion in the text that says "Receiving an ALTSVC frame is semantically equivalent to receiving an Alt-Svc header field”, which suggests that the correct answer may be the open and half-closed remote states, but it’s still unclear. Can I send ALTSVC on closed streams? On idle streams? What about half-closed (local) streams? Can they be sent at any time?

Can I get some clarification from this WG about what the consensus is here? I know that nghttp2 has implemented support already, so in the absence of any further information I’ll take the now-traditional route of “just do what nghttp2 does”, but I’d like a bit more clarity than that!

Thanks

Cory