From: matthew@... Date: 2016-11-15T05:39:03+00:00 Subject: [ruby-core:78142] [Ruby trunk Misc#12935] Webrick: Update HTTP Status codes, share them Issue #12935 has been updated by Matthew Kerwin. Martin D��rst wrote: > > Can you point to some of these examples? If there is actual use of this > code in a somewhat uniform way, then it should be possible to register > it. Also, if there are other, similar codes, then the same applies. > > Regards, Martin. I know, and I guess you also know, that "418 I'm a Teapot" comes from traditional April 1 RFCs: * https://tools.ietf.org/html/rfc2324#section-2.3.2 * https://tools.ietf.org/html/rfc7168#section-2.3.3 The code (and more importantly its name) has appealed to a lot of people over the years. Personally I've used it in the past for application-specific signalling that a client has hit an endpoint that knows the higher-level protocol enough to know that it's the wrong (type of) peer. Maybe there's a non-April-1 Informational RFC in there somewhere, if other folk are doing the same thing. NB: ~~~ ~$ curl -I https://www.google.com/teapot HTTP/2 418 content-type: text/html; charset=ISO-8859-1 date: Tue, 15 Nov 2016 05:34:12 GMT server: gws cache-control: private x-xss-protection: 1; mode=block x-frame-options: SAMEORIGIN alt-svc: quic=":443"; ma=2592000; v="36,35,34" accept-ranges: none vary: Accept-Encoding ~$ ~~~ ---------------------------------------- Misc #12935: Webrick: Update HTTP Status codes, share them https://bugs.ruby-lang.org/issues/12935#change-61504 * Author: Tiago Cardoso * Status: Open * Priority: Normal * Assignee: ---------------------------------------- I was looking for a common source of http status-to-reason map in ruby, and I've found many sources that address the same, some of them overlapping, most of them clearly copy-pasting from each other. In the process, I also found that the current hashmap used by webrick seems not to be up-to-date. Compare: https://github.com/nahi/ruby/blob/webrick_trunk/lib/webrick/httpstatus.rb#L56-L97 with https://github.com/puma/puma/blob/3f66b3d7d4413f843e4e541c4d282238318c4cd2/lib/puma/const.rb#L16-L74 I started (this thread in puma)[https://github.com/puma/puma/issues/1133] to see about openness is centralizing this information in ruby (or just use an updated version of webrick hash), and I found out some interesting things, like the fact that rails reloading is not compatible with some of these things. My main motivation would be to have something similar to nodejs's `http.STATUS_CODES`: ~~~ > require("http").STATUS_CODES { '100': 'Continue', '101': 'Switching Protocols', '102': 'Processing', '200': 'OK', .... ~~~ As http is something which is internally implemented in ruby's stdlib, question would just remain on how and where to implement it, and public API stability and "up-to-date"ness guarantees. I'd suggest maybe making it part of "net/http", like: ~~~ruby require "net/http/status" puts Net::HTTP::STATUS_CODES ~~~ but that's just a suggestion. -- https://bugs.ruby-lang.org/ Unsubscribe: