- From: Gisle Aas <aas@bergen.sn.no>
- Date: 23 Sep 1997 13:26:59 +0200
- To: Dave Kristol <dmk@research.bell-labs.com>
- Cc: http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
dmk@research.bell-labs.com (Dave Kristol) writes:
> Gisle Aas <aas@bergen.sn.no> wrote on 19 Sep 1997 11:59:27 +0200:
>
> > what I have done now is to let URL-encoded chars and unencoded chars
> > match and then let "%2F" and "/" be the exception. Perhaps ";" should
> > be special too?
>
> I'm not sure I understand what you're saying. It sounds like you're saying
> the % escapes wouldn't be interpreted, except sometimes. So
> Path="/%66oo"
> and Path="/foo"
> would be different, but
> Path="/foo%2F"
> and Path="/foo/"
> would be the same.
No, I meant the opposite. "%2F" denotes a literal slash in a path
segment. "/" is the path segment separator. They are not the same
thing and I don't think they should match (but "%2f" and "%2F" is the
same thing). "%66" and "f" is encodings for the same unreserved
character, so they match.
draft-fielding-url-syntax-07.txt says:
| 2.3. Unreserved Characters
|
| Data characters which are allowed in a URL but do not have a reserved
| purpose are called unreserved. These include upper and lower case
| letters, decimal digits, and a limited set of punctuation marks and
| symbols.
|
| unreserved = alphanum | mark
|
| mark = "$" | "-" | "_" | "." | "!" | "~" |
| "*" | "'" | "(" | ")" | ","
|
| Unreserved characters can be escaped without changing the semantics
| of the URL, but this should not be done unless the URL is being used
| in a context which does not allow the unescaped character to appear.
[...]
| 4.3.2. Path Component
|
| The path component contains data, specific to the site (or the scheme
| if there is no site component), identifying the resource within the
| scope of that scheme and site.
|
| path = [ "/" ] path_segments
|
| path_segments = segment *( "/" segment )
| segment = *pchar *( ";" param )
| param = *pchar
|
| pchar = unreserved | escaped | ":" | "@" | "&" | "=" | "+"
|
| The path may consist of a sequence of path segments separated by a
| single slash "/" character. Within a path segment, the characters
| "/", ";", "=", and "?" are reserved. Each path segment may include a
| sequence of parameters, indicated by the semicolon ";" character.
| The parameters are not significant to the parsing of relative
| references.
Which might suggest that "/", ";", "=", and "?" should not match their
URL-encoded versions.
> A look at RFC 822 for quoted-string shows that the stuff inside the
> quotes can be essentially anything. In particular, it (qtext) can be any
> CHAR except ", \, or CR, and those can be specified (quoted-pair) as an
> escaped pair, as in "\\\"" for the string \". So there really isn't any
> need for URL encoding. (I was probably sleeping when I answered your
> question the first time. :-)
RFC-2068 says:
| CTL = <any US-ASCII control character
| (octets 0 - 31) and DEL (127)>
|
| TEXT = <any OCTET except CTLs,
| but including LWS>
|
| quoted-string = ( <"> *(qdtext) <"> )
|
| qdtext = <any TEXT except <">>
which makes me believe that CTLs are hard to represent literally in a
quoted-string.
> >
> > I have another question. draft-ietf-http-state-man-mec-03 says:
> >
> > | If multiple cookies satisfy the criteria above, they are ordered in the
> > | Cookie header such that those with more specific Path attributes precede
> > | those with less specific. Ordering with respect to other attributes
> > | (e.g., Domain) is unspecified.
> >
> > First of all I don't understand why you want to impose this order.
> > Can you comment on that?
>
> Yes. The order derives from the order described in Netscape's original
> cookie spec.: "When sending cookies to a server, all cookies with a
> more specific path mapping should be sent before cookies with less
> specific path mappings."
>
> >
> > Does this apply to cookies both with a specified and a default path?
>
> Yes.
>
> > Does paths belonging to different domains have to be ordered by most
> > specific path?
>
> According to my reading of section 4.3.4, yes.
OK, I'll update my implementation to reflect this.
Thanks, for you answers!
Regards,
Gisle
Received on Tuesday, 23 September 1997 04:31:10 UTC