W3C home > Mailing lists > Public > ietf-http-wg@w3.org > April to June 2017

Re: making up new header field syntax...

From: Julian Reschke <julian.reschke@gmx.de>
Date: Thu, 29 Jun 2017 13:18:50 +0200
To: Mike West <mkwst@google.com>
Cc: HTTP Working Group <ietf-http-wg@w3.org>
Message-ID: <c39fab3e-5263-69b2-975a-e9707a64b4af@gmx.de>
On 2017-06-29 12:56, Mike West wrote:
> On Sun, Jun 25, 2017 at 1:57 PM, Julian Reschke <julian.reschke@gmx.de 
> <mailto:julian.reschke@gmx.de>> wrote:
> 
>     On 2017-06-25 13:52, Julian Reschke wrote:
> 
>         Here's a recent example I found (when looking for uses of JFV):
> 
> 
> Hey Julian! Thanks for pointing out these mistakes! I'd encourage you to 
> file bugs against the spec next time; I'm more likely to see them on 
> GitHub than here.
> ...

It was intended to get us back to work on this :-)

> I originally planned for this header to use JFV, and have backed away 
> from it because of the ongoing discussions in this group about what the 
> Syntax of the Future(tm) should look like. That said, I do anticipate 
> needing some more structure in the values in the fairly near future 
> (`"cookies"` is not nearly granular enough for most use cases, as it 
> turns out). Personally, I still believe JSON is a reasonable fit for 
> that kind of structure... :)

So do I, if only for the reason that we're not making progress on the 
other solution, and *not* using JFV seems to do actual harm right now...

> On that note, https://wicg.github.io/feature-policy/ is another example 
> you might be interested in skimming through.

Saw that. See 
<https://www.greenbytes.de/tech/webdav/draft-reschke-http-jfv-06.html#rfc.section.B>.

>         <https://w3c.github.io/webappsec-clear-site-data/#header
>         <https://w3c.github.io/webappsec-clear-site-data/#header>>:
> 
>             The Clear-Site-Data HTTP response header field sends a
>             signal to the user agent that it ought to remove all data of
>             a certain set of types. The header is represented by the
>             following ABNF [RFC5234]:
> 
>             Clear-Site-Data = 1#( DQUOTE ( data-type | extension-type )
>             DQUOTE )
>             data-type = "cache" | "cookies" | "storage" |
>             "executionContexts"
>             extension-type = 1*( ALPHA | "-")
>             ; #rule is defined in Section 7 of RFC 7230.
>             ; DQUOTE and ALPHA are defined in Appendix B.1 of RFC 5234.
> 
> 
>         Issues:
> 
>         a) the list rule is defined in RFC 7230, not RFC 5234
> 
> 
> Do you mean the reference to the `#rule`? That link points to RFC 7230, 
> as does the text, and https://tools.ietf.org/html/rfc7230#section-1.2 
> includes DQUOTE and ALPHA by reference to RFC 5234. Should we be 
> pointing to RFC 7230 for those as well?

I missed the reference in the comments part. Sorry. But no, this is 
*not* RFC5234-ABNF, so the introduction should be clearer on this. See, 
for instance, 
<https://www.greenbytes.de/tech/webdav/rfc7838.html#rfc.section.1.1>.

>         b) the syntax doesn't allow whitespace, but the examples use it
> 
> 
> I think `1#whatever` allows whitespace. That's my reading of 
> https://tools.ietf.org/html/rfc7230#section-7, but I'm (obviously!) not 
> an expert.

You are right, sorry. Must have imagined some sub structure in the 
fields that isn't there right now.

>         c) things look like quoted-strings, but aren't quoted-strings
> 
> 
> Would you be happier with something like `1#( quoted-string )`? I'd like 

That would be better.

> to specify the legal values so I can link to them later in the spec, but 
> I suppose that doesn't need to be done in the ABNF.

Exactly.

>         d) tokens not allowed
> 
> 
> Can you clarify what you'd like to see?

As long as this is just a list of keywords, you could just use a list of 
tokens (example: 
<https://www.greenbytes.de/tech/webdav/rfc7231.html#rfc.section.7.4.1>).

If you need or anticipate the need of keywords that aren't tokens (for 
instance, because of whitespace), I'd use

   token / quoted-string


>     e) ABNF invalid ("|" instead of "/" -
>     <https://www.youtube.com/watch?v=LbK-g8tKnoc
>     <https://www.youtube.com/watch?v=LbK-g8tKnoc>>)
> 
> 
> My mistake. Perhaps we should wire Bikeshed up to an ABNF validator. 
> Added a note to https://github.com/tabatkins/bikeshed/issues/459 to that 
> effect.

Best regards, Julian
Received on Thursday, 29 June 2017 11:19:28 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:15:03 UTC