Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocketprotocol-01.txt

Ian Fette (イアンフェッティ) <ifette@google.com> Thu, 02 September 2010 16:50 UTC

Return-Path: <ifette@google.com>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 3F0593A677E for <hybi@core3.amsl.com>; Thu, 2 Sep 2010 09:50:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -104.138
X-Spam-Level:
X-Spam-Status: No, score=-104.138 tagged_above=-999 required=5 tests=[AWL=1.538, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DOeSR6TYBbCz for <hybi@core3.amsl.com>; Thu, 2 Sep 2010 09:50:30 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [74.125.121.35]) by core3.amsl.com (Postfix) with ESMTP id 767333A6816 for <hybi@ietf.org>; Thu, 2 Sep 2010 09:50:29 -0700 (PDT)
Received: from kpbe11.cbf.corp.google.com (kpbe11.cbf.corp.google.com [172.25.105.75]) by smtp-out.google.com with ESMTP id o82GowxZ026424 for <hybi@ietf.org>; Thu, 2 Sep 2010 09:50:58 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1283446258; bh=PEq8amssoGW7sFwDRyJvrBy25wI=; h=MIME-Version:Reply-To:In-Reply-To:References:Date:Message-ID: Subject:From:To:Cc:Content-Type; b=XO46IGt5PrCZe6UkMrrPJ11bucHokOlxFF4P7qh2fhilGHx9JiC/XrCx7PsP0GvVM uxdcoDjdtdRnkjrxuBTag==
Received: from gwj17 (gwj17.prod.google.com [10.200.10.17]) by kpbe11.cbf.corp.google.com with ESMTP id o82GouWK010498 for <hybi@ietf.org>; Thu, 2 Sep 2010 09:50:56 -0700
Received: by gwj17 with SMTP id 17so254200gwj.5 for <hybi@ietf.org>; Thu, 02 Sep 2010 09:50:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=beta; h=domainkey-signature:mime-version:received:received:reply-to :in-reply-to:references:date:message-id:subject:from:to:cc :content-type; bh=VGpREVBQ1YMd6c6ONM6fKlJflRE6F1bz7kM/MtEDEKI=; b=S22COoRiR8A45IdpH2u2y4OhBxvOFtSKIjwk7Xyc3Da2RoSSy0TenDsWYWAwk6GSJz uuR0lTU1FX/1v2iOnDfA==
DomainKey-Signature: a=rsa-sha1; c=nofws; d=google.com; s=beta; h=mime-version:reply-to:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; b=PUErGC+WT12CoXor30Q80PYpnnhcgK1uoWU+j7Vaz4QeADZjsdSy9X1XPjQjeQl91x SykqP1EEl1eQmxaRgxVA==
MIME-Version: 1.0
Received: by 10.151.154.3 with SMTP id g3mr327765ybo.412.1283446255753; Thu, 02 Sep 2010 09:50:55 -0700 (PDT)
Received: by 10.150.229.7 with HTTP; Thu, 2 Sep 2010 09:50:55 -0700 (PDT)
In-Reply-To: <4C7F8EE7.1040106@opera.com>
References: <20100901224502.0519B3A687C@core3.amsl.com> <4C7F8EE7.1040106@opera.com>
Date: Thu, 02 Sep 2010 09:50:55 -0700
Message-ID: <AANLkTimLAeUeAk1s8FMgLLdYzEg0koLeGfAfHnei34gD@mail.gmail.com>
From: "Ian Fette (イアンフェッティ)" <ifette@google.com>
To: James Graham <jgraham@opera.com>
Content-Type: multipart/alternative; boundary="0015175707f2299cc8048f499edb"
X-System-Of-Record: true
Cc: hybi@ietf.org
Subject: Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocketprotocol-01.txt
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: ifette@google.com
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/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: Thu, 02 Sep 2010 16:50:35 -0000

James -

Good feedback, thank you. FWIW I agree with what you said below, but I
expect that we will flush out details once we have agreement on the base
framing. In putting this together my primary concern was to get an updated
draft that reflected the recent framing discussions so that we can settle
that issue. Once we have some reasonable level agreement that yes, this
framing is correct, then I think we can fully specify (with MUSTs) behaviour
in all of the circumstances you mention. However, it's a bit like trying to
discuss whether you want the car in red or black when your spouse is trying
to decide between a prius and a F150 -- certain things have to settle down
first :)

-Ian

On Thu, Sep 2, 2010 at 4:47 AM, James Graham <jgraham@opera.com> wrote:

> On 09/02/2010 12:45 AM, Internet-Drafts@ietf.org wrote:
>
>  A URL for this Internet-Draft is:
>>
>> http://www.ietf.org/internet-drafts/draft-ietf-hybi-thewebsocketprotocol-01.txt
>>
>
> A few initial comments:
>
> The framing sections seem to have a lot of SHOULDs. This is worrying as
> SHOULD-level conditions can't really be tested (it is not an error to
> violate them) and can be a source of interoperability problems. I would
> prefer that we make all behaviour mandatory unless there is a good reason to
> do otherwise.
>
> Some specific clauses seem problematic. For example:
>
> """A receiver MUST be prepared to accept arbitrarily fragmented
>      messages, even if the sender sent the message in a single frame."""
>
> "be prepared to accept" seems like poor wording. I would just say "Clients
> and servers MUST support recieving both fragmented and unfragmented
> messages". The clause "even if the sender sent the message..." seems odd
> because it is not clear how the recipient can know how the message is
> originally sent. In any case it seems redundant. This whole clause could be
> avoided with normative processing requirements that require support for
> fragmented and unfragmented messages (see below).
>
> """Ping
>
>      Upon receipt of a Ping message, an endpoint SHOULD send a Pong
>      response as soon as is practical.  The Pong response MUST contain
>      the payload provided in the Ping message, though an implementation
>      MAY truncate the message at an implementation-defined size which
>      MUST be at least 8 _(TBD)_ bytes."""
>
> It seems simpler and less error prone to require truncation always in case
> servers come to depend on the behaviour of specific implementations here.
>
> """      Ping frames MAY be sent as a keep-alive mechanism, but if so the
> interval SHOULD be configurable."""
>
> I have no idea what this SHOULD is trying to require. Is it supposed to be
> a requirement on browser UI? On server implementations? Something else? In
> any case, we can't really require that things are configurable.
>
> """Close:
>
>      Upon receipt of a close frame, an endpoint SHOULD send a Close
>      frame to the remote recipient, if it has not already done so,
>      deliver a close event to the application if necessary, and then
>      close the WebSocket."""
>
> It is not clear what the scope of the SHOULD here is. Since this is nested
> inside a MUST clause I guess "and then close the connection" is supposed to
> be a requirement. I'm not sure why sending the close frame is "SHOULD". I
> don't think it is necessary to talk about "deliver[ing] a close event to the
> application" since the interaction between the application and the protocol
> is for the application to determine. For the specific case of the JS API we
> just need to ensure we use the right terminology so that the description in
> the API document is correct (i.e. this needs to match section 7.3 of the
> protocol draft and section 5 of the API draft).
>
>
> There seems to be a general lack of processing requirements. I don't know
> if this is just something that is missing from the first draft, but without
> such requirements there are a lot of missing details. For example it is
> unclear what happens if the first frame a client receives has opcode=0
> (aside: it seems like we can design around this particular problem by e.g.
> ditching opcode=0 and just ignoring opcode after the first frame in a
> fragment). It is also not defined what should happen if any of the reserved
> bits are set or if the opcode is in the reserved range. All of these things
> are essential for interoperable implementations.
>
> _______________________________________________
> hybi mailing list
> hybi@ietf.org
> https://www.ietf.org/mailman/listinfo/hybi
>