Re: Implementation Notes on Server Push

James M Snell <> Wed, 15 May 2013 21:52 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 53D1A11E80F1 for <>; Wed, 15 May 2013 14:52:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -9.824
X-Spam-Status: No, score=-9.824 tagged_above=-999 required=5 tests=[AWL=0.475, BAYES_00=-2.599, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_HI=-8]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id oZroRiQcQFSk for <>; Wed, 15 May 2013 14:52:09 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 084E011E80E0 for <>; Wed, 15 May 2013 14:52:08 -0700 (PDT)
Received: from lists by with local (Exim 4.72) (envelope-from <>) id 1Ucjbb-0000U7-JB for; Wed, 15 May 2013 21:51:27 +0000
Resent-Date: Wed, 15 May 2013 21:51:27 +0000
Resent-Message-Id: <>
Received: from ([]) by with esmtp (Exim 4.72) (envelope-from <>) id 1UcjbQ-0000SA-5N for; Wed, 15 May 2013 21:51:16 +0000
Received: from ([]) by with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <>) id 1UcjbL-0007ie-1Y for; Wed, 15 May 2013 21:51:15 +0000
Received: by with SMTP id o17so2831408oag.41 for <>; Wed, 15 May 2013 14:50:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=x-received:mime-version:in-reply-to:references:from:date:message-id :subject:to:cc:content-type:content-transfer-encoding; bh=BWTUX5dss5DuUJPFgvMYVg3txE0zYRvKCm9vJ4pJbKI=; b=BprjPMZvGCIeQ/6IcqpJuKhHJZ0oIOQzi0efV9uznCIuDNBVEvoECsCATVoDqE01pK QQNfHPgu5ckF+VXksIw2HArwo56tE/cKsWauY72wIqFbJO6Q5AoWzgkdY/+owtiDapqi E1pPZG1MwISsPGwAt4Tm52W9ORwGcIxvWqllsSUIymunACibpZlEStuyM1g2mA/B0xTw h8Lme27up7IlNGOPulR8BRYpkLGVM2m1OKPY0gKtjPrLRFRSVmds8ShSsECg2o9f0xOb cjgA+TFajDYcXF6xLyRPt4yrTLAqGyEOsSZ4Ag5iPPodpnRRzAZldAva/soHiO1XB8+K iJXQ==
X-Received: by with SMTP id rh6mr660941oeb.97.1368654644778; Wed, 15 May 2013 14:50:44 -0700 (PDT)
MIME-Version: 1.0
Received: by with HTTP; Wed, 15 May 2013 14:50:24 -0700 (PDT)
In-Reply-To: <>
References: <> <> <> <>
From: James M Snell <>
Date: Wed, 15 May 2013 14:50:24 -0700
Message-ID: <>
To: =?UTF-8?B?V2lsbGlhbSBDaGFuICjpmYjmmbrmmIwp?= <>
Cc: Patrick McManus <>, HTTP Working Group <>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=;;
X-W3C-Hub-Spam-Status: No, score=-3.5
X-W3C-Hub-Spam-Report: AWL=-2.703, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: 1UcjbL-0007ie-1Y d80b46a2e6ec41be6fa905c97ba66d1f
Subject: Re: Implementation Notes on Server Push
Archived-At: <>
X-Mailing-List: <> archive/latest/18011
Precedence: list
List-Id: <>
List-Help: <>
List-Post: <>
List-Unsubscribe: <>

On Wed, May 15, 2013 at 2:41 PM, William Chan (陈智昌)
<> wrote:
>> Its pretty obvious that there are going to be a fair number of pushed
>> streams that never get used.  I think there are lots of scenarios where
>> that's true - but we can start with things like AdBlockPlus and GreaseMonkey
>> scripts where the view the client has of the dom is pretty different than
>> the server's view. And the savings of push is really just on the order of 1
>> RTT for the whole page load. So client implementations need to draw a
>> balance between the costs of buffering and transferring that data and the
>> RTT savings.
> SETTINGS_MAX_CONCURRENT_STREAMS is another option here.

Bounding the max concurrent open streams is not quite enough here...
for one, if we limit the number of concurrent streams without limiting
the amount of data pushed within those streams, developers could
simply end up resorting to inlining again... one stream for all their
js files, one stream for all their css, etc.

I, for one, am planning an experiment that uses a combination of DATA
frames and a modified version of a HEADERS frame as a way of replacing
the use of multipart mime. Using that approach, it would be rather
simple for me to work around the max concurrent streams limit by
simply sequencing out multiple resources in a single stream.

- James