On Tue, Dec 8, 2009 at 1:17 PM, Peter Bex <peter....@xs4all.nl> wrote:

> On Tue, Dec 08, 2009 at 12:52:00PM -0300, Stephen Eilert wrote:
> > A few days ago I had a difficult bug to diagnose, which happened because
> I
> > was trying to use uri-generic with uri-dispatch, instead of uri-common.
> >
> > What is the purpose of uri-generic anyway?
>
> It is an implementation of RFC 3986, which is much more broadly
> applicable than just in web URIs.  For example, URNs like
> urn:ietf:rfc:3986 are also URIs, but not URI-commons.  They have
> no authority (user/pass/hostname/port combination), and no query
> string either, only a path.  Some other schemes *do* have query
> strings, but not x-www-form-urlencoded ones.
>
> The uri-generic egg is intended for handling the full generality
> of all these types of URIs, whereas uri-common is intended for the
> specific "common" subset of URIs which are usually used on the web,
> to indicate a host, port and path indicating a resource on that host,
> with optionally an x-www-form-urlencoded query to pass to that resource
> for further processing.
>
> uri-common adds a few extra conveniences like more complete path
> decoding (all percent-encoded bits are fully decoded) because it knows
> this is allowed since the path's components are separated by slashes
> but have no additional separators with special meaning inside.  Other
> schemes can't be handled this way.  For example, the URN scheme
> mentioned above has a colon (:) which has special meaning, so %3A could
> not be decoded into : until after the parts are separated;
> urn:foo%3Abar:qux  would be decoded to "foo:bar:qux", and hence it would
> be indistinguishable from urn:foo:bar:qux.
>
> So, to summarize: you would never need or use uri-generic unless you're
> writing a more specific URI parser for other schemes than the common
> ones.
>
>
Thanks for the explanation.


--Stephen

programmer, n:
       A red eyed, mumbling mammal capable of conversing with inanimate
monsters.
_______________________________________________
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to