* WGs marked with an * asterisk has had at least one new draft made available during the last 5 days

Ticket #36 (closed editorial: fixed)

Opened 7 years ago

Last modified 3 years ago

ABNF Update

Reported by: mnot@pobox.com Owned by: julian.reschke@gmx.de
Priority: normal Milestone: 06
Component: non-specific Severity: Active WG Document
Keywords: Cc:
Origin:

Description

Update BNF to RFC4234.

Change History

comment:1 Changed 7 years ago by julian.reschke@gmx.de

RFC4234 will be obsoleted by RFC5234 very soon.

comment:2 Changed 7 years ago by julian.reschke@gmx.de

  • Owner set to julian.reschke@gmx.de
  • Component set to non-specific

comment:3 Changed 7 years ago by julian.reschke@gmx.de

From [135]:

Consistent indentation for all ABNF rules (addresses #36)

comment:4 Changed 7 years ago by julian.reschke@gmx.de

From [136]:

Add missing whitespace in BNF (addresses #36)

comment:5 Changed 7 years ago by mnot@pobox.com

  • Milestone set to unassigned

comment:6 Changed 7 years ago by mnot@pobox.com

  • version set to 00-draft

comment:7 Changed 7 years ago by fielding@gbiv.com

  • Milestone changed from unassigned to 02

comment:8 Changed 7 years ago by julian.reschke@gmx.de

From [154]:

Use names of RFC4234 (RFC5234) core rules (HTAB, DQUOTE); addresses #36.

comment:9 Changed 7 years ago by julian.reschke@gmx.de

From [155]:

fix BNF rule for chunk-data; addresses #36.

comment:10 Changed 7 years ago by julian.reschke@gmx.de

From [185]:

Get rid of duplicate BNF rule names ("host" -> "uri-host", "trailer" -> "trailer-part"), avoid underscore character in rule names ("http_URL" -> "http-URL", "abs_path" -> "path-absolute"), add rules for terms imported from URI spec ("absoluteURI", "authority", "path-absolute", "port", "query", "relativeURI", "host) -- these will have to be updated when switching over to RFC3986; addresses #36.

comment:11 Changed 7 years ago by julian.reschke@gmx.de

From [186]:

Synchronize core rules with RFC5234 (except the CHAR vs NUL issue), get rid of prose rules that span multiple lines, get rid of unused rules LOALPHA and UPALPHA; addresses #36.

comment:12 Changed 7 years ago by julian.reschke@gmx.de

From [187]:

Fix typo in ALPHA rule (we're still using the RFC2616's syntax); addresses #36.

comment:13 Changed 7 years ago by julian.reschke@gmx.de

From [188]:

Exclude NUL from CHAR (see <http://www.w3.org/mid/52304CE2-0ADE-499A-9A5A-35284BD428BA@gbiv.com>); addresses #36.

comment:14 Changed 7 years ago by julian.reschke@gmx.de

From [190]:

Move Section "Product Tokens" from P2 into P1 (back below "Protocol Parameters") ("token" is used in the definition of the Upgrade header); addresses #36.

comment:15 Changed 7 years ago by julian.reschke@gmx.de

From [191]:

Explicitly import BNF rules for "challenge" and "credentials" from RFC2617; addresses #36.

comment:16 Changed 7 years ago by julian.reschke@gmx.de

From [205]:

Add sections that for now normatively reference the ABNF syntax and basic rules from Part1, also start work on referencing ABNF rules adopted from other parts (ongoing); relates to #36.

comment:17 Changed 7 years ago by julian.reschke@gmx.de

From [206]:

Work on referencing ABNF rules adopted from other parts (done for P2 and P3); relates to #36.

comment:18 Changed 7 years ago by julian.reschke@gmx.de

From [207]:

Work on referencing ABNF rules adopted from other parts (finished for all parts, also grouped by part); relates to #36.

comment:19 Changed 7 years ago by julian.reschke@gmx.de

From [210]:

Move definition of "delta-seconds" into Part1; relates to #36.

comment:20 Changed 7 years ago by fielding@gbiv.com

I would prefer that delta-seconds remain in P6, where it is most used, and the single use in P2 be replaced with 1*DIGIT. Alternatively, move it to P2 and refer to it there in P6, or simply define it more than once.

IMO, P1 should not define ABNF that it does not use.

comment:21 Changed 7 years ago by julian.reschke@gmx.de

From [212]:

Remove delta-seconds def from P1, just redefine it in P2 (revisits change [210]); relates to #36.

comment:22 Changed 7 years ago by julian.reschke@gmx.de

From [214]:

Rewrite "token" rule, not using prose; relates to #36.

comment:23 Changed 7 years ago by julian.reschke@gmx.de

From [215]:

Rewrite "TEXT" rule, not using prose; relates to #36.

comment:24 Changed 7 years ago by mnot@pobox.com

  • Milestone changed from 02 to 03

comment:25 Changed 7 years ago by julian.reschke@gmx.de

From [229]:

add linking between ABNF rules (does not affect TXT version), relates to #36.

comment:26 Changed 6 years ago by julian.reschke@gmx.de

TODO: use proper notation for case-sensitive char sequences, such as in HTTP-Version and method.

comment:27 Changed 6 years ago by julian.reschke@gmx.de

From [260]:

Do not use string literals in ABNF when matching is case-sensitive (related to #36)

comment:28 Changed 6 years ago by julian.reschke@gmx.de

From [261]:

upper-case hex value for consistency (related to #36)

comment:29 Changed 6 years ago by julian.reschke@gmx.de

  • Milestone changed from 03 to 04

comment:30 Changed 6 years ago by julian.reschke@gmx.de

From [273]:

Do not use string literals in ABNF when matching is case-sensitive (related to #36)

comment:31 Changed 6 years ago by julian.reschke@gmx.de

From [309]:

s/HEX/HEXDIG/, also add section targets for some RFC2396 references related to percent escaping (related to #36)

comment:32 Changed 6 years ago by julian.reschke@gmx.de

  • Milestone changed from 04 to unassigned

comment:33 Changed 6 years ago by julian.reschke@gmx.de

From [334]:

use "/" instead of "|" for alternatives (related to #36)

comment:34 Changed 6 years ago by julian.reschke@gmx.de

From [335]:

reference RFC5234 instead of RFC822 for ABNF, but continue to extend it with implied LWS and #rule (related to #36)

comment:35 Changed 6 years ago by julian.reschke@gmx.de

Plan for LWS:

  • take out LWS
  • put int OWS:

OWS = *WSP [obs-folding] obs-folding = CRLF 1*WSP

  • explain when obs-folding is allowed (consumer vs producer)
  • point out that this disallows continuations for producers, and only allows simple cont. for consumers (all-whitespace lines considered security risk)
  • add appendix explaining for RFC2616 productions went

comment:36 Changed 6 years ago by julian.reschke@gmx.de

From [349]:

only reference RFC 6234's core rules (related to #36)

comment:37 Changed 6 years ago by julian.reschke@gmx.de

From [350]:

resync with trunk wrt core rules (related to #36)

comment:38 Changed 6 years ago by julian.reschke@gmx.de

From [351]:

introduce BWS, OWS, RWS, but do not use them yet (related to #36)

comment:39 Changed 6 years ago by julian.reschke@gmx.de

From [352]:

s/chunk-extension/chunk-ext/ (related to #36)

comment:40 Changed 6 years ago by julian.reschke@gmx.de

From [353]:

start adding BWS/OWS/RWS (related to #36)

comment:41 Changed 6 years ago by julian.reschke@gmx.de

From [354]:

Rewrite header ABNFs to spell out whitespace rules, factor out value format definitions. (related to #36)

comment:42 Changed 6 years ago by julian.reschke@gmx.de

From [356]:

Rewrite header ABNFs to spell out whitespace rules, factor out value format definitions. (related to #36)

comment:43 Changed 6 years ago by julian.reschke@gmx.de

From [357]:

Rewrite header ABNFs to spell out whitespace rules, factor out value format definitions. (related to #36)

comment:44 Changed 6 years ago by julian.reschke@gmx.de

From [360]:

simplify ABNF production by using WSP (related to #36)

comment:45 Changed 6 years ago by julian.reschke@gmx.de

From [362]:

Rewrite header ABNFs to spell out whitespace rules, factor out value format definitions. (related to #36)

comment:46 Changed 6 years ago by julian.reschke@gmx.de

From [363]:

Rewrite header ABNFs to spell out whitespace rules, factor out value format definitions. (related to #36)

comment:47 Changed 6 years ago by julian.reschke@gmx.de

From [364]:

Rewrite header ABNFs to spell out whitespace rules, factor out value format definitions. (related to #36)

comment:48 Changed 6 years ago by julian.reschke@gmx.de

From [365]:

Rewrite header ABNFs to spell out whitespace rules, factor out value format definitions. (related to #36)

comment:49 Changed 6 years ago by julian.reschke@gmx.de

From [366]:

Rewrite header ABNFs to spell out whitespace rules, factor out value format definitions. (related to #36)

comment:50 Changed 6 years ago by julian.reschke@gmx.de

From [367]:

fix typo (related to #36)

comment:51 Changed 6 years ago by julian.reschke@gmx.de

From [369]:

Explain rationale for OWS/BWS/RWS, do not use LWS production anymore (related to #36)

comment:52 Changed 6 years ago by julian.reschke@gmx.de

From [370]:

Rewrite header ABNFs to spell out whitespace rules, factor out value format definitions. (related to #36)

comment:53 Changed 6 years ago by julian.reschke@gmx.de

From [371]:

Cleanup. (related to #36)

comment:54 Changed 6 years ago by julian.reschke@gmx.de

From [372]:

Mention implied LWS change in the Changes section (related to #36)

comment:55 Changed 6 years ago by mnot@pobox.com

  • Milestone changed from unassigned to 05

comment:56 Changed 6 years ago by julian.reschke@gmx.de

From [375]:

simplify ABNF production (related to #36)

comment:57 Changed 6 years ago by julian.reschke@gmx.de

From [376]:

fix width problems in ABNF (related to #36)

comment:58 Changed 6 years ago by julian.reschke@gmx.de

From [377]:

remove TODO statements (related to #36)

comment:59 Changed 6 years ago by julian.reschke@gmx.de

From [378]:

add note about future ABNF appendix containing flattened list rules (related to #36)

comment:60 Changed 6 years ago by ylafon@w3.org

Regarding list production: #foo => *(OWS "," [OWS foo]) 1#foo => *(OWS ",") OWS foo *(OWS "," [OWS foo])

or better

#foo => OWS *( "," OWS [foo OWS]) 1#foo => OWS *( "," OWS) foo OWS *( "," OWS [foo OWS])

comment:61 Changed 6 years ago by ylafon@w3.org

If we need to keep the empty list elements (for consumers):

#foo => [ ( "," / foo) *(OWS "," [OWS foo]) ]

1#foo => *( "," OWS) foo *( OWS "," [OWS foo])

n#foo => *( "," OWS) foo (n-1)*( OWS "," OWS foo ) *(OWS "," [OWS foo])

Without the empty list elements (for producers):

#foo => [1#foo]

1#foo => foo *(OWS "," OWS foo)

n#foo => foo (n-1)*(OWS "," foo) *(OWS "," OWS foo)

comment:62 Changed 6 years ago by julian.reschke@gmx.de

From [400]:

rewrite definition of list rule, deprecate empty list elements (related to #36)

comment:63 Changed 6 years ago by julian.reschke@gmx.de

  • Status changed from new to assigned
  • Milestone changed from 05 to 06

Left to do:

  • rewrite general ABNF so that it refers to the header *value* ABNFs instead to the header ABNFs, then get rid of the header ABNFs.
  • automatically generate appendix sections with expanded list productions.

comment:64 Changed 6 years ago by julian.reschke@gmx.de

From [417]:

add core.abnf, add make targets for reformatted ABNF (related to #36)

comment:65 Changed 6 years ago by julian.reschke@gmx.de

From [418]:

add sorting to the production of *.parsed-abnf (related to #36)

comment:66 Changed 6 years ago by julian.reschke@gmx.de

From [420]:

add code and Makefile rules to generate ABNF appendix sections (related to #36)

comment:67 Changed 6 years ago by julian.reschke@gmx.de

From [421]:

add collected abnf appendices (related to #36)

comment:68 Changed 6 years ago by julian.reschke@gmx.de

From [424]:

reorganize ABNF introductions to match Part1 (related to #36)

comment:69 Changed 6 years ago by julian.reschke@gmx.de

From [425]:

reference RFC5234 core rules directly, fix line end bug in appendix generation (related to #36)

comment:70 Changed 6 years ago by julian.reschke@gmx.de

From [427]:

ABNF appendix: group by first letter, add internal links to definitions (related to #36)

comment:71 Changed 6 years ago by julian.reschke@gmx.de

From [428]:

ABNF appendix: group by first letter, add internal links to definitions -- fix group detection (related to #36)

comment:72 Changed 6 years ago by julian.reschke@gmx.de

From [429]:

insert SP around ABNF brackets (related to #36)

comment:73 Changed 6 years ago by julian.reschke@gmx.de

From [431]:

add forward ref in ABNF comment for obs-fold (related to #36)

comment:74 Changed 6 years ago by julian.reschke@gmx.de

From [434]:

adjust whitespace in ABNF; make name of header value production for "Range" consistent with other headers (related to #36 and #85)

comment:75 Changed 6 years ago by julian.reschke@gmx.de

From [444]:

reorganize header introductions consistent (related to #36, see also [364])

comment:76 Changed 6 years ago by julian.reschke@gmx.de

  • Status changed from assigned to closed
  • Resolution set to fixed

Fixed in [543]:

Resolve #36: In P2..P7, mention list rule defined in P1; also point to Appendix containing collected ABNF with list rule being expanded (closes #36)

comment:77 Changed 6 years ago by julian.reschke@gmx.de

With [543], all planned activities with respct to the ABNF syntax change are done. Please open new tickets in case new ABNF related issues come up.

comment:78 Changed 5 years ago by julian.reschke@gmx.de

From [738]:

Syntax notation: mention "obs-" prefix convention. List rule: clarify intro, add note about how empty list elements contribute to the total number of elements, add examples. Related to #36.

comment:79 Changed 3 years ago by fielding@gbiv.com

From [1425]:

Fix incorrect definition of line folding (obs-fold) from [351]. Remove optional WSP from chunked encoding grammar added in [353]. Do not use WSP anywhere (it is misleading because it dosn't match the real definition of whitespace).

Related to #36

comment:80 Changed 3 years ago by julian.reschke@gmx.de

From [1462]:

Fix examples for list syntax not to include *leading* whitespace (that's not part of the list production) (see #36)

comment:81 Changed 3 years ago by naruse@airemix.jp

Collectted ABNF in HTTP/1.1, part 5: Range Requests and Partial Responses draft-ietf-httpbis-p5-range-19 has typo.

WITH LIST RULE EXTENSION:

     byte-range-set  = 1#( byte-range-spec / suffix-byte-range-spec )

WRONG:

   byte-range-set = ( *( "," OWS ) byte-range-spec ) / (
    suffix-byte-range-spec *( OWS "," [ ( OWS byte-range-spec ) /
    suffix-byte-range-spec ] ) )

CORRECT:

   byte-range-set = *( "," OWS ) ( byte-range-spec / suffix-byte-range-spec )
     *( OWS "," [ OWS ( byte-range-spec / suffix-byte-range-spec ) ] )

comment:82 Changed 3 years ago by julian.reschke@gmx.de

  • Priority set to normal
  • Severity set to Active WG Document

Indeed. It seems that there's a bug in the conversion code that we are using. See #358. Thanks for the report.

Last edited 3 years ago by julian.reschke@gmx.de (previous) (diff)
Note: See TracTickets for help on using tickets.