Re: 3 last issues with the URI syntax

Patrik =?iso-8859-1?Q?F=E4ltstr=F6m?= (paf@swip.net)
Sun, 12 Jul 1998 22:49:10 +0200


Message-Id: <v04011700b1cecbdce526@[193.12.104.1]>
In-Reply-To: <9807111024.aa28120@paris.ics.uci.edu>
Date: Sun, 12 Jul 1998 22:49:10 +0200
To: "Roy T. Fielding" <fielding@kiwi.ics.uci.edu>
From: Patrik =?iso-8859-1?Q?F=E4ltstr=F6m?=  <paf@swip.net>
Cc: Larry Masinter <masinter@parc.xerox.com>, uri@Bunyip.Com
Subject: Re: 3 last issues with the URI syntax

At 10.24 -0700 98-07-11, Roy T. Fielding wrote:
>>    URI schemes which does not follow this syntax have to follow the
>>    following syntax, where the scheme-specific-part does not begin with
>>    a '/':
>>
>>       <scheme>:<uric-no-slash> *<uric>
>
>That is mixing BNF with a non-BNF example.  If this is too confusing,
>we should just get rid of the layout form examples and use actual URI
>as examples.

Let's then not change anything here.

>>(2) The specification of <query> in the grammar.
>>
>>>3.4. Query Component
>>>
>>>   The query component is a string of information to be interpreted by
>>>   the resource.
>>>
>>>      query         = *uric
>>>
>>>   Within a query component, the characters ";", "/", "?", ":", "@",
>>>   "&", "=", "+", ",", and "$" are reserved.
>>
>>My suggestion is that query should be specified not with *uric, but instead
>>a group of characters which actually is allowed. According to what I can
>>see the rule should be instead:
>>
>>       query         = * (unreserved | escaped)
>
>That is incorrect.  Reserved does not mean disallowed.  You will note
>that reserved characters are often included in components.  The only
>thing not included in components are the component separators.  Query
>does not have a component separator because it appears at the end of
>the URI string.

I should not have said "allowed" but "unescaped" as the reserved characters
needs to be escaped according to section 2.2:

   Many URI include components consisting of or delimited by, certain
   special characters.  These characters are called "reserved", since
   their usage within the URI component is limited to their reserved
   purpose.  If the data for a URI component would conflict with the
   reserved purpose, then the conflicting data must be escaped before
   forming the URI.

Let me put it this way:

I _would_ have liked the grammar express what the URI really looks like,
i.e. the grammar would have been better if you in the grammar could have
seen what character needs to be escaped and not.

As that is not the case for more places in the grammar, I suggest that we
leave the grammar as it is.

>>(3) relative-path reference
>>...
>>To change to:
>>
>>   The syntax for relative URI is a shortened form of that for absolute
>>   URI, where some prefix of the URI is missing and certain path
>>   components ("." and "..") have a special meaning when, and only when,
>>   interpreting a relative path.  The relative URI syntax is defined
>>   in Section 5.
>>
>>I.e. the suggested text does not only state that the "." and ".." are to be
>>treated when a relative URI is to be used, but also that it is to be
>>resolved only in that case.
>
>Okay.


Can you submit a "-04.txt" with the very tiny change above, and I'll do the
bueraucratic job.

I.e. done! At last!

   Patrik