RFC Errata


Errata Search

 
Source of RFC  
Summary Table Full Records

RFC 1738, "Uniform Resource Locators (URL)", December 1994

Note: This RFC has been obsoleted by RFC 4248, RFC 4266

Note: This RFC has been updated by RFC 1808, RFC 2368, RFC 2396, RFC 3986, RFC 6196, RFC 6270, RFC 8089

Source of RFC: Legacy

Errata ID: 2845
Status: Rejected
Type: Editorial
Publication Format(s) : TEXT

Reported By: Mykyta Yevstifeyev
Date Reported: 2011-06-26
Rejected by: Peter Saint-Andre
Date Rejected: 2011-06-27

Section 5 says:

scheme         = 1*[ lowalpha | digit | "+" | "-" | "." ]

[ . . . ]

hostname       = *[ domainlabel "." ] toplabel
domainlabel    = alphadigit | alphadigit *[ alphadigit | "-" ] alphadigit
toplabel       = alpha | alpha *[ alphadigit | "-" ] alphadigit

[ . . . ]

user           = *[ uchar | ";" | "?" | "&" | "=" ]
password       = *[ uchar | ";" | "?" | "&" | "=" ]

[ . . . ]

fpath          = fsegment *[ "/" fsegment ]
fsegment       = *[ uchar | "?" | ":" | "@" | "&" | "=" ]

[ . . . ]

hpath          = hsegment *[ "/" hsegment ]
hsegment       = *[ uchar | ";" | ":" | "@" | "&" | "=" ]
search         = *[ uchar | ";" | ":" | "@" | "&" | "=" ]

[ . . . ]

group          = alpha *[ alpha | digit | "-" | "." | "+" | "_" ]
article        = 1*[ uchar | ";" | "/" | "?" | ":" | "&" | "=" ] "@" host

[ . . . ]

ppath          = psegment *[ "/" psegment ]
psegment       = *[ uchar | "?" | ":" | "@" | "&" | "=" ]
fieldspec      = ";" fieldname "=" fieldvalue
fieldname      = *[ uchar | "?" | ":" | "@" | "&" ]
fieldvalue     = *[ uchar | "?" | ":" | "@" | "&" ]

It should say:

scheme         = 1*( lowalpha | digit | "+" | "-" | "." )

[ . . . ]

hostname       = *( domainlabel "." ) toplabel
domainlabel    = alphadigit | alphadigit *( alphadigit | "-" ) alphadigit
toplabel       = alpha | alpha *( alphadigit | "-" ) alphadigit

[ . . . ]

user           = *( uchar | ";" | "?" | "&" | "=" )
password       = *( uchar | ";" | "?" | "&" | "=" )

[ . . . ]

fpath          = fsegment *( "/" fsegment )
fsegment       = *( uchar | "?" | ":" | "@" | "&" | "=" )

[ . . . ]

hpath          = hsegment *( "/" hsegment )
hsegment       = *( uchar | ";" | ":" | "@" | "&" | "=" )
search         = *( uchar | ";" | ":" | "@" | "&" | "=" )

[ . . . ]

group          = alpha *( alpha | digit | "-" | "." | "+" | "_" )
article        = 1*( uchar | ";" | "/" | "?" | ":" | "&" | "=" ) "@" host

[ . . . ]

ppath          = psegment *( "/" psegment )
psegment       = *( uchar | "?" | ":" | "@" | "&" | "=" )
fieldspec      = ";" fieldname "=" fieldvalue
fieldname      = *( uchar | "?" | ":" | "@" | "&" )
fieldvalue     = *( uchar | "?" | ":" | "@" | "&" )

Notes:

Given this is BNF of RFC 822 construction <n>*<m>[element] is incorrect, as RFC 822 defines:

> 2.5. [RULE]: OPTIONAL
>
> Square brackets enclose optional elements; "[foo bar]" is
> equivalent to "*1(foo bar)".

and therefore [] construction is illegal in the aforementioned one. My proposal is to replace all occurrences of [] construction where they are used in the meaning of () with the legal-as-per-822 one.
--VERIFIER NOTES--
This specification does not use the BNF syntax from RFC 822. Please refer
to the first paragraph of Section 5:

###

This is a BNF-like description of the Uniform Resource Locator
syntax, using the conventions of RFC822, except that "|" is used to
designate alternatives, and brackets [] are used around optional or
repeated elements. Briefly, literals are quoted with "", optional
elements are enclosed in [brackets], and elements may be preceded
with <n>* to designate n or more repetitions of the following
element; n defaults to 0.

###

The definitions follow the syntax used in this document. Thus
the report is incorrect.

Report New Errata



Advanced Search