- From: Seph Gentle <me@josephg.com>
- Date: Thu, 15 May 2025 07:16:57 +1000
- To: "Guohui Deng" <guohuideng@microsoft.com>, "Roy T. Fielding" <fielding@gbiv.com>
- Cc: "Yoav Weiss" <yoav.weiss@shopify.com>, "HTTP Working Group" <ietf-http-wg@w3.org>, "Anne van Kesteren" <annevk@annevk.nl>, "Mark Nottingham" <mnot@mnot.net>
- Message-Id: <cb34b6bb-1653-4b69-8e94-41405e3fe974@app.fastmail.com>
All of these answers seem like a bad design to me. It sounds like what you want is this: enum ContentEncoding { Known(string), Unknown, NotPresent } Using a sentinal value for “none” / null is Hoare’s billion dollar mistake. An unrecognised content encoding isn’t a type of content encoding at all. If you ask me, it shouldn’t be treated or stored as such. This design uses sum types - which means it isn’t always practical with modern databases and programming languages. I think I’ll never understand why languages like sql, c++ and go are missing sum types. -Seph On Thu, 15 May 2025, at 3:36 AM, Guohui Deng wrote: > Thanks Roy! I will proceed with "_". Really appreciate the detailed information and your guidance. > > Guohui > > > *From:* Roy T. Fielding <fielding@gbiv.com> > *Sent:* Monday, May 12, 2025 2:30 PM > *To:* Guohui Deng <guohuideng@microsoft.com> > *Cc:* Yoav Weiss <yoav.weiss@shopify.com>; ietf-http-wg@w3.org <ietf-http-wg@w3.org>; Anne van Kesteren <annevk@annevk.nl> > *Subject:* Re: [EXTERNAL] Proposal adaptation request > > On May 12, 2025, at 12:38 PM, Guohui Deng <guohuideng@microsoft.com> wrote: >> >> Hi Roy and Yoav, >> >> Besides "_", is there something else like "_unknown" a "non-HTTP value that cannot be registered"? >> >> For us, "_unknown" is better than "_". I checked "rfc8941" and I don't see any restrictions on the values in that doc. I guess it cannot be registered but I am not sure. >> >> Cheers, >> Guohui > > "_" could theoretically be registered by IETF consensus. It seems unlikely given that nothing "short" is ever registered by consensus. The content-coding grammar is a token > > token = 1*tchar > > tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" > / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" > / DIGIT / ALPHA > ; any VCHAR, except delimiters > > The nice thing about "_" is that quite a few dead bodies would have to be crossed for that to be registered, and yet it still remains syntactically valid as a token (in case that matters), is easy to check, and looks good. > > But, as I said before, it is not an IETF concern so long as it remains inside the API as a non-protocol marker. > If the API allows Unicode, "💩" would also be fine (and even less likely to be a conflict). > > ....Roy >
Received on Wednesday, 14 May 2025 21:17:40 UTC