[Webpush] comments on latest draft-thomson-webpush-protocol-00
Benjamin Bangert <bbangert@mozilla.com> Thu, 09 July 2015 18:58 UTC
Return-Path: <bbangert@mozilla.com>
X-Original-To: webpush@ietfa.amsl.com
Delivered-To: webpush@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E42D21B2B57 for <webpush@ietfa.amsl.com>; Thu, 9 Jul 2015 11:58:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.577
X-Spam-Level:
X-Spam-Status: No, score=-0.577 tagged_above=-999 required=5 tests=[AC_DIV_BONANZA=0.001, BAYES_05=-0.5, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, 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 S3iPvNNKKxMJ for <webpush@ietfa.amsl.com>; Thu, 9 Jul 2015 11:58:42 -0700 (PDT)
Received: from mail-wi0-f174.google.com (mail-wi0-f174.google.com [209.85.212.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 681331A2182 for <webpush@ietf.org>; Thu, 9 Jul 2015 11:58:42 -0700 (PDT)
Received: by wiga1 with SMTP id a1so320872652wig.0 for <webpush@ietf.org>; Thu, 09 Jul 2015 11:58:41 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=QzQpC0iQ/x1pw8voQOZ9lPFmCRPXckqExvnSYgorK6M=; b=FLXdulJSklAvJiLybl74CtXcvNoxlALfQPxgYwhLs1g3GaahzZ2SKZJN5ngz5rH8iD TP/F+GLzUeyECpScBFjpvxFTjs0smcsG8rTYWwUpaSIL9Pw/Orq5HX5Brxz2jG6AlqR4 PZ6cbmDnXyezg8sqh7aIsOR/E+baxaMBlgu0WoWcS9WMq+KWc2H+bMaHCKEAWPc/743v zsPfTpL7+WPfDKRSDl39ZrWfePnvhMFcjcqD+hH+uxmXNCgucOtoy6YNmFBlfH7LGLw7 1L/pbBf3GB8Wm42Nf0EU1guO5bAGjmQ28NdpNTCqGuqDLYRsDRR+rEVq0mfBfgXnKf9G 5++Q==
X-Gm-Message-State: ALoCoQkLlSpuivowDzioeodidkF/M3vtj/nddUs0nOcgAT0gIHjcwobiwL5lQ5OFqfwKAzyXvC61
MIME-Version: 1.0
X-Received: by 10.194.23.36 with SMTP id j4mr33438473wjf.105.1436468321012; Thu, 09 Jul 2015 11:58:41 -0700 (PDT)
Received: by 10.27.215.213 with HTTP; Thu, 9 Jul 2015 11:58:40 -0700 (PDT)
Date: Thu, 09 Jul 2015 11:58:40 -0700
Message-ID: <CABp8EuL8E3usn5bbcaZjQDGD26sFOh18-AugQ-3UPTMG_aTNbQ@mail.gmail.com>
From: Benjamin Bangert <bbangert@mozilla.com>
To: "webpush@ietf.org" <webpush@ietf.org>
Content-Type: multipart/alternative; boundary="047d7b3a91b2018cb9051a75d88b"
Archived-At: <http://mailarchive.ietf.org/arch/msg/webpush/HcTPdM5uv1HRnqldAOWTs8ClnTI>
Subject: [Webpush] comments on latest draft-thomson-webpush-protocol-00
X-BeenThere: webpush@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Discussion of potential IETF work on a web push protocol <webpush.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/webpush>, <mailto:webpush-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/webpush/>
List-Post: <mailto:webpush@ietf.org>
List-Help: <mailto:webpush-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/webpush>, <mailto:webpush-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Jul 2015 18:58:50 -0000
-Sec 3: Subscribing What should be done if a client has subscribed to as many subscriptions as a server will allow per authenticated-client? "The push server MUST provide a URI for the push resource corresponding to the push message subscription using a link relation of type "urn:ietf:params:push"." Can this be the same push resource for a single authenticated client? Explanation for this in next bit. -Sec 6: Receiving Push Messages This section appears to require a GET for every single subscription. If you have 80 subscriptions, upon connect, you will send 80 GET's. Also, for the server to maintain all your subscriptions, and optionally subscription expiration information, can make a significant impact on the per-connection memory overhead as all this state will need to be maintained on the server handling all these subscriptions. Just as the receipt subscription URL is likely to be the same for the service as a whole, I would propose allowing a Push Service to provide an authenticated client a single push subscription URL for all subscriptions for that client (the Location handed to App-Servers would of course vary for each subscription). The Push Promise path would then need to be the Location given out, so that the client could determine which subscription each message is for. This would allow for a single GET on connect, to begin receiving all notifications, for all subscriptions the client has setup previously. The client would need to realize that if it is already monitoring a subscription for notifications, and subscribes to another that has the same URL, then it should start expecting those notifications to be associated with the existing http2 stream. As this section currently stands, its quite a bit of data to resume subscription flow on a disconnect, which would be very expensive for mobile clients. Having a per-client subscription resource for *all subscriptions* would allow clients to resume notification flow faster on disconnect, with lower server resource overhead as the entire flow of notifications can resume on a reconnect without waiting for all the individual subscription GET's. It would also help avoid server overloading when large batches of clients come online/offline at once (1k clients at 80 subscriptions each connecting at once is a quick 80k hits, etc.). This change would require 7.3 to be updated, so that expiration of subscriptions can be communicated in some other manner, and the client could DELETE them in some other manner. "A 204 (No Content) status code with no associated server pushes indicates that no messages are presently available. This could be because push messages have expired." This seems to indicate that a response will be returned for a GET to a push subscription if there are no messages, once a response has been returned though, no push promise frames for that GET can be sent (as far as I understand http2 stream semantics at least). If there's no messages for a push subscription, is the intention that a 204 is sent, or that its kept open for push promise frames for eventual notifications? -Sec 6.2: Receiving Push Message Receipts If an application server has sent substantial quantities of notifications, all with push receipts, and has failed to take any action to clear its receipt queue, what should be done to indicate to the App-Server that it isn't allowed to send any more until it clears out its receipt queue? It feels like there should be some way to indicate this, as its possible the App-Server is malfunctioning rather than is being a bad actor. Cheers, Ben
- [Webpush] comments on latest draft-thomson-webpus… Benjamin Bangert
- Re: [Webpush] comments on latest draft-thomson-we… Costin Manolache
- Re: [Webpush] comments on latest draft-thomson-we… Brian Raymor
- Re: [Webpush] comments on latest draft-thomson-we… Benjamin Bangert
- Re: [Webpush] comments on latest draft-thomson-we… Martin Thomson
- Re: [Webpush] comments on latest draft-thomson-we… Benjamin Bangert
- Re: [Webpush] comments on latest draft-thomson-we… Darshak Thakore
- Re: [Webpush] comments on latest draft-thomson-we… Martin Thomson
- Re: [Webpush] comments on latest draft-thomson-we… Benjamin Bangert
- Re: [Webpush] comments on latest draft-thomson-we… Costin Manolache
- Re: [Webpush] comments on latest draft-thomson-we… Darshak Thakore
- Re: [Webpush] comments on latest draft-thomson-we… Darshak Thakore
- Re: [Webpush] comments on latest draft-thomson-we… Costin Manolache
- Re: [Webpush] comments on latest draft-thomson-we… Benjamin Bangert
- Re: [Webpush] comments on latest draft-thomson-we… Benjamin Bangert
- Re: [Webpush] comments on latest draft-thomson-we… Darshak Thakore
- Re: [Webpush] comments on latest draft-thomson-we… Benjamin Bangert
- Re: [Webpush] comments on latest draft-thomson-we… Martin Thomson