Re: 3 last issues with the URI syntax

Roy T. Fielding (fielding@kiwi.ics.uci.edu)
Thu, 16 Jul 1998 01:40:15 -0700


To: Patrik =?iso-8859-1?Q?F=E4ltstr=F6m?= <paf@swip.net>
cc: Larry Masinter <masinter@parc.xerox.com>, uri@Bunyip.Com
In-reply-to: Your message of "Sun, 12 Jul 1998 22:49:10 +0200."
             <v04011700b1cecbdce526@[193.12.104.1]> 
Date: Thu, 16 Jul 1998 01:40:15 -0700
From: "Roy T. Fielding" <fielding@kiwi.ics.uci.edu>
Message-ID:  <9807160140.aa20567@paris.ics.uci.edu>
Subject: Re: 3 last issues with the URI syntax 

>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.

Okay, but to hopefully relieve any concern here, I'd like to explain.
A reserved character may appear inside the component, and thus the grammar
does express what the URI really looks like.  For example, "&" is a
reserved character in a query component, which means

    http://no_where/man?foo&bar
and
    http://no_where/man?foo%26bar

are two different URI.  Thus, "&" is allowed in the grammar of a query
component.  The warning about it being reserved is an indication to the
implementer that it cannot be used safely as a data character within
that component unless it is escaped.

>>>(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.

Done.  I'll include the diff below.

....Roy

*** draft-fielding-uri-syntax-03.txt	Thu Jun  4 18:25:38 1998
--- draft-fielding-uri-syntax-04.txt	Thu Jul 16 01:20:19 1998
***************
*** 1,7 ****
  Network Working Group                            T. Berners-Lee, MIT/LCS
  INTERNET-DRAFT                                 R. Fielding,  U.C. Irvine
! draft-fielding-uri-syntax-03              L. Masinter, Xerox Corporation
! Expires six months after publication date                   June 4, 1998
  
  
            Uniform Resource Identifiers (URI): Generic Syntax
--- 1,7 ----
  Network Working Group                            T. Berners-Lee, MIT/LCS
  INTERNET-DRAFT                                 R. Fielding,  U.C. Irvine
! draft-fielding-uri-syntax-04              L. Masinter, Xerox Corporation
! Expires six months after publication date                  June 16, 1998
  
  
            Uniform Resource Identifiers (URI): Generic Syntax
***************
*** 701,708 ****
  
     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 interpreting a
!    relative path.  The relative URI syntax is defined in Section 5.
  
  4.1. Fragment Identifier
  
--- 701,709 ----
  
     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.
  
  4.1. Fragment Identifier