- From: Kari Hurtta <hurtta-ietf@elmme-mailer.org>
- Date: Sun, 2 Oct 2016 14:10:32 +0300 (EEST)
- To: Ilari Liusvaara <ilariliusvaara@welho.com>
- CC: Kari hurtta <hurtta-ietf@elmme-mailer.org>, Van Catha <vans554@gmail.com>, HTTP working group mailing list <ietf-http-wg@w3.org>
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
Received on Sunday, 2 October 2016 11:11:04 UTC