Re: WebSocket2

Kari Hurtta <hurtta-ietf@elmme-mailer.org> Sun, 02 October 2016 11:15 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 938B41288B8 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 2 Oct 2016 04:15:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.917
X-Spam-Level:
X-Spam-Status: No, score=-9.917 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.996, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 qkKjBJq9Jwgx for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 2 Oct 2016 04:15:11 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 95F6212B015 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sun, 2 Oct 2016 04:15:11 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1bqefh-0007VB-G2 for ietf-http-wg-dist@listhub.w3.org; Sun, 02 Oct 2016 11:11:05 +0000
Resent-Date: Sun, 02 Oct 2016 11:11:05 +0000
Resent-Message-Id: <E1bqefh-0007VB-G2@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <hurtta@siilo.fmi.fi>) id 1bqefg-0007US-6l for ietf-http-wg@listhub.w3.org; Sun, 02 Oct 2016 11:11:04 +0000
Received: from smtpvgate.fmi.fi ([193.166.223.36]) by maggie.w3.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.80) (envelope-from <hurtta@siilo.fmi.fi>) id 1bqefe-0005Kd-2G for ietf-http-wg@w3.org; Sun, 02 Oct 2016 11:11:03 +0000
Received: from virkku.fmi.fi (virkku.fmi.fi [193.166.211.54]) (envelope-from hurtta@siilo.fmi.fi) by smtpVgate.fmi.fi (8.13.8/8.13.8/smtpgate-20160114/smtpVgate) with ESMTP id u92BAWoR009538 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sun, 2 Oct 2016 14:10:32 +0300
Received: from shell.siilo.fmi.fi by virkku.fmi.fi with ESMTP id u92BAWfF031665 ; Sun, 2 Oct 2016 14:10:32 +0300
Received: from shell.siilo.fmi.fi ([127.0.0.1]) by shell.siilo.fmi.fi with ESMTP id u92BAWKM019030 ; Sun, 2 Oct 2016 14:10:32 +0300
Received: by shell.siilo.fmi.fi id u92BAWpi019029; Sun, 2 Oct 2016 14:10:32 +0300
Message-Id: <201610021110.u92BAWpi019029@shell.siilo.fmi.fi>
In-Reply-To: <20161002101548.GA9450@LK-Perkele-V2.elisa-laajakaista.fi>
References: <CAG-EYChPJpAzoEuNwY3cNz503d0FRbNnDx_9AsNsZyfb5nmN0g@mail.gmail.com> <20161002080030.5F328160CC@welho-filter4.welho.com> <20161002101548.GA9450@LK-Perkele-V2.elisa-laajakaista.fi>
To: Ilari Liusvaara <ilariliusvaara@welho.com>
Date: Sun, 02 Oct 2016 14:10:32 +0300
Sender: hurtta@siilo.fmi.fi
From: Kari Hurtta <hurtta-ietf@elmme-mailer.org>
CC: Kari hurtta <hurtta-ietf@elmme-mailer.org>, Van Catha <vans554@gmail.com>, HTTP working group mailing list <ietf-http-wg@w3.org>
X-Mailer: ELM [version ME+ 2.5 PLalpha41]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="US-ASCII"
X-Filter: smtpVgate.fmi.fi: 3 received headers rewritten with id 20161002/02512/01
X-Filter: smtpVgate.fmi.fi: ID 2512/01, 1 parts scanned for known viruses
X-Filter: virkku.fmi.fi: ID 1105/01, 1 parts scanned for known viruses
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-3.0 (smtpVgate.fmi.fi [193.166.223.36]); Sun, 02 Oct 2016 14:10:33 +0300 (EEST)
Received-SPF: none client-ip=193.166.223.36; envelope-from=hurtta@siilo.fmi.fi; helo=smtpVgate.fmi.fi
X-W3C-Hub-Spam-Status: No, score=-6.7
X-W3C-Hub-Spam-Report: AWL=-0.180, BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-2.641, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: maggie.w3.org 1bqefe-0005Kd-2G 7ba5563b8712c2cd6a637250fd85376b
X-Original-To: ietf-http-wg@w3.org
Subject: Re: WebSocket2
Archived-At: <http://www.w3.org/mid/201610021110.u92BAWpi019029@shell.siilo.fmi.fi>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/32448
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Ilari Liusvaara <ilariliusvaara@welho.com>: (Sun Oct  2 13:15:48 2016)
> On Sun, Oct 02, 2016 at 11:00:29AM +0300, Kari hurtta wrote:
> > 
> > (A,B) Is there http  error code which tells that
> > that it was unsuppoted :scheme (and not other 
> > error, for example wrong :path) ?
> > 
> > That is needed that client (A) orPbroxy (B) can
> > switch Websocket (RFC 6455) negotated over
> > HTTP/1.1
> 
> I don't think there is (and that's a part of the problem) with current
> scheme handling.
> 
> There are probably quite a bit of servers that just plain ignore the
> scheme in request.

Hmm. Was reason why

https://tools.ietf.org/html/draft-hirano-httpbis-websocket-over-http2-01

used SETTINGS frame with SETTINGS_WEBSOCKET_CAPABLE parameter ?
Seems not mention that reason. 

That means that server needs send SETTINGS_WEBSOCKET_CAPABLE = 1
to client indicating that server handles :scheme = ws
( and on that draft SETTINGS_WEBSOCKET_CAPABLE = 1
  was sent from client to server. )



Hypertext Transfer Protocol (HTTP) Status Code Registry
http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml

gives 

----------------------------------------------
    Value            Description                             Reference
     100   Continue                        [RFC7231, Section 6.2.1]
     101   Switching Protocols             [RFC7231, Section 6.2.2]
     102   Processing                      [RFC2518]
   103-199 Unassigned
     200   OK                              [RFC7231, Section 6.3.1]
     201   Created                         [RFC7231, Section 6.3.2]
     202   Accepted                        [RFC7231, Section 6.3.3]
     203   Non-Authoritative Information   [RFC7231, Section 6.3.4]
     204   No Content                      [RFC7231, Section 6.3.5]
     205   Reset Content                   [RFC7231, Section 6.3.6]
     206   Partial Content                 [RFC7233, Section 4.1]
     207   Multi-Status                    [RFC4918]
     208   Already Reported                [RFC5842]
   209-225 Unassigned
     226   IM Used                         [RFC3229]
   227-299 Unassigned
     300   Multiple Choices                [RFC7231, Section 6.4.1]
     301   Moved Permanently               [RFC7231, Section 6.4.2]
     302   Found                           [RFC7231, Section 6.4.3]
     303   See Other                       [RFC7231, Section 6.4.4]
     304   Not Modified                    [RFC7232, Section 4.1]
     305   Use Proxy                       [RFC7231, Section 6.4.5]
     306   (Unused)                        [RFC7231, Section 6.4.6]
     307   Temporary Redirect              [RFC7231, Section 6.4.7]
     308   Permanent Redirect              [RFC7538]
   309-399 Unassigned
     400   Bad Request                     [RFC7231, Section 6.5.1]
     401   Unauthorized                    [RFC7235, Section 3.1]
     402   Payment Required                [RFC7231, Section 6.5.2]
     403   Forbidden                       [RFC7231, Section 6.5.3]
     404   Not Found                       [RFC7231, Section 6.5.4]
     405   Method Not Allowed              [RFC7231, Section 6.5.5]
     406   Not Acceptable                  [RFC7231, Section 6.5.6]
     407   Proxy Authentication Required   [RFC7235, Section 3.2]
     408   Request Timeout                 [RFC7231, Section 6.5.7]
     409   Conflict                        [RFC7231, Section 6.5.8]
     410   Gone                            [RFC7231, Section 6.5.9]
     411   Length Required                 [RFC7231, Section 6.5.10]
     412   Precondition Failed             [RFC7232, Section 4.2]
     413   Payload Too Large               [RFC7231, Section 6.5.11]
     414   URI Too Long                    [RFC7231, Section 6.5.12]
     415   Unsupported Media Type          [RFC7231, Section 6.5.13][RFC7694, Section 3]
     416   Range Not Satisfiable           [RFC7233, Section 4.4]
     417   Expectation Failed              [RFC7231, Section 6.5.14]
   418-420 Unassigned
     421   Misdirected Request             [RFC7540, Section 9.1.2]
     422   Unprocessable Entity            [RFC4918]
     423   Locked                          [RFC4918]
     424   Failed Dependency               [RFC4918]
     425   Unassigned
     426   Upgrade Required                [RFC7231, Section 6.5.15]
     427   Unassigned
     428   Precondition Required           [RFC6585]
     429   Too Many Requests               [RFC6585]
     430   Unassigned
     431   Request Header Fields Too Large [RFC6585]
   432-450 Unassigned
     451   Unavailable For Legal Reasons   [RFC7725]
   452-499 Unassigned
     500   Internal Server Error           [RFC7231, Section 6.6.1]
     501   Not Implemented                 [RFC7231, Section 6.6.2]
     502   Bad Gateway                     [RFC7231, Section 6.6.3]
     503   Service Unavailable             [RFC7231, Section 6.6.4]
     504   Gateway Timeout                 [RFC7231, Section 6.6.5]
     505   HTTP Version Not Supported      [RFC7231, Section 6.6.6]
     506   Variant Also Negotiates         [RFC2295]
     507   Insufficient Storage            [RFC4918]
     508   Loop Detected                   [RFC5842]
     509   Unassigned
     510   Not Extended                    [RFC2774]
     511   Network Authentication Required [RFC6585]
   512-599 Unassigned
----------------------

:status =  501

is probably that what should be expected with unsupported :scheme


( and HTTP/2 Error Code registry 
http://www.iana.org/assignments/http2-parameters/http2-parameters.xhtml#error-code

gives

Code 	Name 	Description 	Reference
0x0 	NO_ERROR 	Graceful shutdown 	[RFC7540, Section 7]
0x1 	PROTOCOL_ERROR 	Protocol error detected 	[RFC7540, Section 7]
0x2 	INTERNAL_ERROR 	Implementation fault 	[RFC7540, Section 7]
0x3 	FLOW_CONTROL_ERROR 	Flow-control limits exceeded 	[RFC7540, Section 7]
0x4 	SETTINGS_TIMEOUT 	Settings not acknowledged 	[RFC7540, Section 7]
0x5 	STREAM_CLOSED 	Frame received for closed stream 	[RFC7540, Section 7]
0x6 	FRAME_SIZE_ERROR 	Frame size incorrect 	[RFC7540, Section 7]
0x7 	REFUSED_STREAM 	Stream not processed 	[RFC7540, Section 7]
0x8 	CANCEL 	Stream cancelled 	[RFC7540, Section 7]
0x9 	COMPRESSION_ERROR 	Compression state not updated 	[RFC7540, Section 7]
0xa 	CONNECT_ERROR 	TCP connection error for CONNECT method 	[RFC7540, Section 7]
0xb 	ENHANCE_YOUR_CALM 	Processing capacity exceeded 	[RFC7540, Section 7]
0xc 	INADEQUATE_SECURITY 	Negotiated TLS parameters not acceptable 	[RFC7540, Section 
7]
0xd 	HTTP_1_1_REQUIRED 	Use HTTP/1.1 for the request 	[RFC7540, Section 7]
0xe-0xffffffff 	Unassigned 		

but unknown :scheme is not HTTP/2 error anyway.
)


> -Ilari

/ Kari Hurtta