Re: [quicwg/base-drafts] Why are there two ways of associating push with requests? (#3275)

Kazuho Oku <> Wed, 27 November 2019 11:55 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 364F212088D for <>; Wed, 27 Nov 2019 03:55:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.382
X-Spam-Status: No, score=-6.382 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_IMAGE_ONLY_24=1.618, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id DDS4efXGYQYi for <>; Wed, 27 Nov 2019 03:55:37 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 3BC6A120112 for <>; Wed, 27 Nov 2019 03:55:37 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id 2D6C0A0097 for <>; Wed, 27 Nov 2019 03:55:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1574855736; bh=9xWcIEZqCHylUsOdkW75COGMzjfbsXoKJgvbdJwMV9o=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=J4jE0KAmQ2hhmmuDFheLDROg9mM7cZbdh9ZJdrDXI9poUfYpXsobuM1HYZkSCaC5K 3l32OYDucwq3zfdtUUjBxILYn7w2BOD6AF7XRMx5JPw2pInxhYvmnvu/Jiig7K+nTp jiBSUUA/a+0Es4boUt1T3y4SC89rowlBAIairczw=
Date: Wed, 27 Nov 2019 03:55:36 -0800
From: Kazuho Oku <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/issues/3275/>
In-Reply-To: <quicwg/base-drafts/issues/>
References: <quicwg/base-drafts/issues/>
Subject: Re: [quicwg/base-drafts] Why are there two ways of associating push with requests? (#3275)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5dde64381f6c0_4053fd6fb6cd95c141175"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: kazuho
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
Archived-At: <>
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 27 Nov 2019 11:55:39 -0000

Note also that the current design has the priority inversion issue.

When the server sends a PUSH_PROMISE frame on request stream A, then sends a DUPLICATE_PUSH frame on stream B referring to the same pushed resource, and if stream B has higher precedence than stream A, then delivery of the request header of the pushed resource might get significantly delayed. Such a behavior would have negative effect on a well-designed client that blocks on the DUPLICATE_PUSH frame until it receives the request header of the pushed resource.

Sending the request headers on the pushed stream resolves the issue. The server can more easily control the priority of a pushed stream, it becomes much easier to send the request headers of a pushed response before anything else.

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: