Re: [hybi] Fwd: publication request: draft-ietf-hybi-permessage-compression-05
Takeshi Yoshino <tyoshino@google.com> Tue, 12 March 2013 12:26 UTC
Return-Path: <tyoshino@google.com>
X-Original-To: hybi@ietfa.amsl.com
Delivered-To: hybi@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CC59321F88F7 for <hybi@ietfa.amsl.com>; Tue, 12 Mar 2013 05:26:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.677
X-Spam-Level:
X-Spam-Status: No, score=-101.677 tagged_above=-999 required=5 tests=[AWL=0.300, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, NO_RELAYS=-0.001, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6cLeVZcCF5dD for <hybi@ietfa.amsl.com>; Tue, 12 Mar 2013 05:26:20 -0700 (PDT)
Received: from mail-we0-x234.google.com (mail-we0-x234.google.com [IPv6:2a00:1450:400c:c03::234]) by ietfa.amsl.com (Postfix) with ESMTP id 19BC121F889C for <hybi@ietf.org>; Tue, 12 Mar 2013 05:26:19 -0700 (PDT)
Received: by mail-we0-f180.google.com with SMTP id k14so4543524wer.39 for <hybi@ietf.org>; Tue, 12 Mar 2013 05:26:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:mime-version:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=hu+lkmCd01F+sTQjlav93oGYYSwljH0frLHlzP+Ld+g=; b=H24RyIiecbMVbgJCY00mm1BYd+pZJxXDCSPUFkMVlB7DxXITAdrA9UeHz+snzwr7A6 uoOCzvIuzQ5Ql6uxVx8HOsHjhShFf+VJMu1fiotJiN1BOeZmryhXIDna3Nu/32to9vbJ /DSKKba/DoED6Z/ED7pl0FxxKos2rhzd9LSbzZcRbG6PhtotHQ2RB4YRkGVnbBHNoe45 PgL4m7vXD8H5K8/cjtsXxJnaJJ2kEW+lFGVFsALt8BgERh/TbD6OzHLNA5HhAfuZSWgZ fjeG+JBjtndvCNYNMFmUH7T50MFYwFmvmzY2lRz9VoCg4/vrJmb+BHe/dLPxMQwUf5Us oJww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:mime-version:in-reply-to:references:from:date:message-id :subject:to:cc:content-type:x-gm-message-state; bh=hu+lkmCd01F+sTQjlav93oGYYSwljH0frLHlzP+Ld+g=; b=If1Zr149FEhclXDZbShmx6Ah041qNylJcAR5QNUPuRuPf8l484UD28LRM52V2lwava c8MMdIumHTAsolnQFPuVk+IC7OXTlwEI2CbmueMGv/J0B7pqtUkxPNSNCd5TiccvUDrB AjBAVVNbPtpCBXAKSuQVj2XISBUjTQKcUf7MSc2AcqXsaMwPWVxZUBUbZxuzTddb8+sW Y+PsVCet661ZC0XX5LCbM+wg7Hp9LQpDOnwxqQ8yYMeDEeZVvhTfjdXUkgywHoveCU4t hsoS+TFGngApT1lV2BvExk18D096p2DnCa8q16DPaqU6L3LLKdu5E6oYaW2Tpd6G5mO5 M2yg==
X-Received: by 10.180.90.2 with SMTP id bs2mr24686158wib.0.1363091177985; Tue, 12 Mar 2013 05:26:17 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.194.234.198 with HTTP; Tue, 12 Mar 2013 05:25:57 -0700 (PDT)
In-Reply-To: <CAC4RtVB33Fm9KpC6QPB_=LRvMRx_fR7vMNp5nFP3HqPTbfouqA@mail.gmail.com>
References: <5124943C.4080503@ericsson.com> <5124CF8E.2000406@ericsson.com> <CAC4RtVB33Fm9KpC6QPB_=LRvMRx_fR7vMNp5nFP3HqPTbfouqA@mail.gmail.com>
From: Takeshi Yoshino <tyoshino@google.com>
Date: Tue, 12 Mar 2013 21:25:57 +0900
Message-ID: <CAH9hSJYrms4NjATbBrqhkb48o5n1xtau0=kU90hR1Wmy28nA-Q@mail.gmail.com>
To: Barry Leiba <barryleiba@computer.org>
Content-Type: multipart/alternative; boundary="f46d043be19c75f1de04d7b96504"
X-Gm-Message-State: ALoCoQkk45vpSiA3OZegDUb7hXNJ6wJQqr/3ClE+r8aZ7Dah8oM7lZMOumxrH/SaRgdNoVgv7jS5WgbwMZ6MGVDz/V/qEoLBnQnDohdL8FmoQ4uvBGVCnoagu4MPgE+AW954bD7gproSx3hRWM1TrUTBxgkX+xHBpYR6eTharpTLr4THTLIl3R+iY6Gn841Jb3fBniWP+f9K
Cc: "hybi@ietf.org" <hybi@ietf.org>
Subject: Re: [hybi] Fwd: publication request: draft-ietf-hybi-permessage-compression-05
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Mar 2013 12:26:21 -0000
Thanks for review. On Fri, Feb 22, 2013 at 7:42 AM, Barry Leiba <barryleiba@computer.org>wrote: > > [in various places...} > _This section is non-normative._ > > 2. Conformance Requirements > Everything in this specification except for sections explicitly > marked non-normative is normative. > > I understand that all of this corresponds to the same text in the > WebSockets document. I can't tell you how much I dislike this style, > and I ask (but not demand) that you please consider removing it. I'm > happy to discuss this. > > Yes. Removed. > I believe you need to be clear from the language you use (and I don't > just mean MUST and SHOULD) when something is not normative. Calling > things "examples" already conveys this. Section titles such as > "Introduction" conveys this. Most documents manage without this sort > of thing. Why does WebSockets (and its successor documents, such as > this one) need it? > > -- Introduction -- > > The simplest "Sec-WebSocket-Extensions" header in the client's > opening handshake to request permessage-deflate is the following: > > Sec-WebSocket-Extensions: permessage-deflate > > The simplest header from the server to accept this extension is the > same. > > Why is this in the Introduction? It seems seriously out of place there. > > Moved it out. > -- Section 3 -- > > I find the organization of this to be awkward. The first paragraph > doesn't make much sense to me, for one thing. I suggest two things to > start with: > > 1. Change the overall document title: > > OLD > WebSocket Per-message Compression > > NEW > WebSocket Per-message Compression Extension Framework > > That better explains what the document is specifying (the abbreviated > title can remain "WebSocket Per-message Compression"), and means that > the last sentence of the first paragraph of Section 3 can be removed. > For the rest of the paragraph, how about this (I'm also pulling up > something from the paragraphs below)?: > > NEW > Per-Message Compression Extensions (PMCEs) are individually > defined, and are registered in the WebSocket Extension Name > Registry. One such extension is defined in Section 5 of this > document and is registered in Section 7.1. Other PMCEs may > be defined in other documents. Each PMCE defines the content > of its extension token, including any applicable extension > parameters. > END > > Note that you now have an abbreviation (PMCE) that you can use freely. > > Thanks. Took the idea. > Second paragraph: > > To request use of a Per-message Compression Extension, a client MUST > include an element with its extension token in the > "Sec-WebSocket-Extensions" header in its opening handshake. > > You should avoid a lot of "it"s, unless the antecedent is quite clear. > Here, the antecedents are not clear. It looks like "its extension > token" means "the client's extension token," and it looks like "its > opening handshake" means "the S-WS-E header's opening handshake," or > perhaps "the token's opening handshake." > OK. I'll fix them. > > Also, is the client "requesting" use of one particular PMCE, or > "offering" a list of PMCEs? It seems to me that it's the latter: The language in RFC 6455 was "request/accept" ( http://tools.ietf.org/html/rfc6455#section-9), so, I used it. > the > client offers a list, and the server selects zero or one from the list > and sends it in the response. Yes? > Yes. The server can decline the offer. I don't stick to "request", but am not so sure how odd and why "request" sounds so. > > The > element contains extension parameters as specified by the > specification of the extension. > > This loops around in a circle, and is hard to make sense of. > > Removed > A client MAY list multiple Per- > message Compression Extensions with the same name to offer use of the > same algorithm with different configurations. > > May a client also list multiple extensions with *different* names? > Yes. It may. > > How about this for the whole paragraph?: > > NEW > To offer use of a PMCE, a client MUST include an element with the > offered extension's token in the "Sec-WebSocket-Extensions" header > in the opening handshake of the WebSocket connection. A client > offers multiple PMCE choices to the server by including multiple > tokens, one for each PMCE offered. The set of tokens MAY include > multiple PMCEs with the same name to offer use of the same > algorithm with different configurations. > END > > Thanks. I took it with some modification. > Please look for other "it" occurrences, and make sure they're similarly > clear. > > OK > Similarly, for the third paragraph, maybe this?: > > NEW > To accept use of a PMCE, a server MUST include an element with the > accepted extension token in the "Sec-WebSocket-Extensions" header in > the opening handshake of the WebSocket connection. The accepted > token MUST be one of those offered by the client during the opening > handshake, and MUST represent a PMCE that is fully supported by the > server. The server rejects all offered PMCEs by not including any > PMCE tokens, in which case the connection proceeds without > per-message compression. > END > > Thanks. Made some rewrite and replaced. > Fourth paragraph: > > If a client doesn't support the extension and its parameters replied > from the server, the client MUST _Fail the WebSocket Connection_. > Otherwise, once _the WebSocket Connection is established_, both > endpoints MUST use the algorithm described in Section 4 to exchange > messages. > > Why would a server respond with an extension/parameters that the > client doesn't support? The client already sent a list of what it's > willing to use. In the re-writes I've done above, that's made clear, > Yes, great. > and this paragraph is, if anything, just specifying how to handle a > server response that's in violation of the protocol. You also refer > to the Section 4 algorithm, but say nothing about what compression > mechanism will be used. So maybe this?: > > NEW > * If the server responds with no PMCE tokens, once _the WebSocket > Connection is established_ it proceeds without per-message > compression. > > * If the server gives an invalid response, such as accepting a > PMCE that the client did not offer, the client MUST _Fail the > WebSocket Connection_. > > * Otherwise, once _the WebSocket Connection is established_, both > endpoints MUST use the algorithm described in Section 4 to exchange > messages, using the PMCE returned by the server. > OLD > > By my reckoning, this has just re-written the entire Section 3. This > bothers me, because it makes me question the level of review and > editing that the document has gone through. As I look at Section 3.1, > I see that it appears to be inadequate: it is *not* a "negotiation > example"; it is a series of out-of-context examples of isolated header > field values. This actually *would* benefit from a full example of an > opening handshake that uses this, where a client offers a few PMCEs > (perhaps two with the same name and a third with another name), and > showing how the server responds. > ======================================== > Sorry about the prematureness. I'm revising organization of the document now. > _______________________________________________ > hybi mailing list > hybi@ietf.org > https://www.ietf.org/mailman/listinfo/hybi >
- [hybi] Fwd: publication request: draft-ietf-hybi-… Salvatore Loreto
- Re: [hybi] Fwd: publication request: draft-ietf-h… Barry Leiba
- Re: [hybi] Fwd: publication request: draft-ietf-h… Bjoern Hoehrmann
- Re: [hybi] Fwd: publication request: draft-ietf-h… Takeshi Yoshino
- Re: [hybi] Fwd: publication request: draft-ietf-h… Takeshi Yoshino