Re: [hybi] Ticket#1 Http Compliance
Maciej Stachowiak <mjs@apple.com> Thu, 13 May 2010 07:26 UTC
Return-Path: <mjs@apple.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 35BC93A6BAC for <hybi@core3.amsl.com>; Thu, 13 May 2010 00:26:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -104.741
X-Spam-Level:
X-Spam-Status: No, score=-104.741 tagged_above=-999 required=5 tests=[AWL=-0.743, BAYES_50=0.001, HTML_MESSAGE=0.001, 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 iXecUskk0GEX for <hybi@core3.amsl.com>; Thu, 13 May 2010 00:26:28 -0700 (PDT)
Received: from mail-out4.apple.com (mail-out4.apple.com [17.254.13.23]) by core3.amsl.com (Postfix) with ESMTP id 61AA33A6AD0 for <hybi@ietf.org>; Thu, 13 May 2010 00:21:02 -0700 (PDT)
Received: from relay16.apple.com (relay16.apple.com [17.128.113.55]) by mail-out4.apple.com (Postfix) with ESMTP id A44F5997F20F for <hybi@ietf.org>; Thu, 13 May 2010 00:20:52 -0700 (PDT)
X-AuditID: 11807137-b7c23ae000001561-63-4beba8541ff8
Received: from et.apple.com (et.apple.com [17.151.62.12]) by relay16.apple.com (Apple SCV relay) with SMTP id 23.8C.05473.458ABEB4; Thu, 13 May 2010 00:20:52 -0700 (PDT)
MIME-version: 1.0
Content-type: multipart/alternative; boundary="Boundary_(ID_EObzeeg+51aTSjacwoz1Rw)"
Received: from [17.151.84.28] by et.apple.com (Sun Java(tm) System Messaging Server 6.3-7.04 (built Sep 26 2008; 32bit)) with ESMTPSA id <0L2C00KX1KES7E90@et.apple.com> for hybi@ietf.org; Thu, 13 May 2010 00:20:52 -0700 (PDT)
From: Maciej Stachowiak <mjs@apple.com>
In-reply-to: <4BEAB021.5030600@webtide.com>
Date: Thu, 13 May 2010 00:20:51 -0700
Message-id: <16A430F2-1458-404C-839B-7EEF23434026@apple.com>
References: <4BEAB021.5030600@webtide.com>
To: Greg Wilkins <gregw@webtide.com>
X-Mailer: Apple Mail (2.1078)
X-Brightmail-Tracker: AAAAAQAAAZE=
Cc: "hybi@ietf.org" <hybi@ietf.org>
Subject: Re: [hybi] Ticket#1 Http Compliance
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
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, 13 May 2010 07:26:30 -0000
Also speaking as an individual... On May 12, 2010, at 6:41 AM, Greg Wilkins wrote: > All, > > Attached is a proposed diff (from me as individual - not as requirements editor) > to the requirements document for HTTP Compliance. > > Formatted as text the patch results in: > > > REQ. 7: When sharing host and "well known" port with HTTP, the > WebSocket protocol MUST be HTTP/1.1 compliant until both ends have > established the WebSocket protocol. The protocol may prohibit the > usage of specific HTTP features. What is the difference between "HTTP/1.1 compatible" and "HTTP/1.1 compliant"? I can't tell if I support this change without understanding what difference is intended > > Reason: when operating on the standard HTTP ports, existing web > infrastructure may handle connections and requests according to > existing standards prior to the establishment of the new protocol. > It may also be desirable for consenting clients and servers to use > HTTP features such as authentication and redirection, prior to > establishing the websocket handshake. > > However, this requirement does not mean that a websocket > implementation that is not for general-purpose HTTP, need implement > any more of the HTTP protocol than is required to establish a > websocket connection. The minimal requirements of HTTP are small, as > indicated by the following extracts of RFC-2616: I think quoting parts of the HTTP RFC in the requirements document is not a good idea. It seems like too much detail for a requirements document. > > RFC-2616 5.1.1 The methods GET and HEAD MUST be supported by all > general-purpose servers. All other methods are OPTIONAL If this implies that all WebSocket servers, even WebSocket servers that are standalone and not combined with HTTP servers, must implement GET and HEAD, then that seems like a silly and pointless requirement. What would be the practical benefit of this? > RFC-2616 6.1.1 HTTP applications are not required to understand the > meaning of all registered status codes, though such understanding > is obviously desirable. However, applications MUST understand the > class of any status code, as indicated by the first digit, and > treat any unrecognized response as being equivalent to the x00 > status code of that class What if anything does this imply for WebSocket clients and servers? > RFC-2616 7.1 Unrecognized header fields SHOULD be ignored by the > recipient and MUST be forwarded by transparent proxies. It's not clear how this requirement constrains the design of the protocol. For example, if WebSocket made the handshake fail if any header fields are present other than a short whitelist, that would be fully consistent with this conformance requirement. > > My intent with this wording is to not require any more of HTTP > to be implemented my minimal implementations, hence the extracts > from RFC2616 showing that there are few MUSTs in HTTP. Are you claiming these are the only MUST-level requirements that apply to HTTP clients and servers? That seems wrong to me. If you are indeed claiming this I'll be glad to provide counter-examples. > This will allow arbitrary HTTP features to be used if > client and server desire to do so - which seams reasonable > as in many cases the client and server are going to have > full HTTP implementations available. If that is indeed desirable, it seems like a separate requirement from being "HTTP compliant". The handshake could be "HTTP compliant" without enabling this. > > However, it does allow the protocol to specifically prohibit > the use of features, if for example we decided that redirect > was a undesirable for some reason. I agree that we must have the freedom for the protocol to do this. But for this very reason, the change doesn't do what you said in the previous paragraph. Regards, Maciej
- [hybi] Ticket#1 Http Compliance Greg Wilkins
- Re: [hybi] Ticket#1 Http Compliance Roberto Peon
- Re: [hybi] Ticket#1 Http Compliance Anne van Kesteren
- Re: [hybi] Ticket#1 Http Compliance Maciej Stachowiak
- Re: [hybi] Ticket#1 Http Compliance Greg Wilkins
- Re: [hybi] Ticket#1 Http Compliance Greg Wilkins
- Re: [hybi] Ticket#1 Http Compliance Salvatore Loreto
- Re: [hybi] Ticket#1 Http Compliance Greg Wilkins
- Re: [hybi] Ticket#1 Http Compliance Maciej Stachowiak
- Re: [hybi] Ticket#1 Http Compliance Maciej Stachowiak
- Re: [hybi] Ticket#1 Http Compliance Greg Wilkins
- Re: [hybi] Ticket#1 Http Compliance Anne van Kesteren
- Re: [hybi] Ticket#1 Http Compliance Maciej Stachowiak
- Re: [hybi] Ticket#1 Http Compliance Greg Wilkins
- Re: [hybi] Ticket#1 Http Compliance Greg Wilkins
- Re: [hybi] Ticket#1 Http Compliance Anne van Kesteren
- Re: [hybi] Ticket#1 Http Compliance Greg Wilkins
- [hybi] requirements document is a milestone (was … Salvatore Loreto
- Re: [hybi] Ticket#1 Http Compliance Scott Ferguson
- Re: [hybi] Ticket#1 Http Compliance Thomson, Martin
- Re: [hybi] Ticket#1 Http Compliance Greg Wilkins
- Re: [hybi] Ticket#1 Http Compliance Greg Wilkins