Re: [gnet-dev] GURL
- From: David Helder <dhelder umich edu>
- To: David Bolcsfoldi <david bolcsfoldi telia com>
- Cc: <gnet-dev gnetlibrary org>
- Subject: Re: [gnet-dev] GURL
- Date: Wed, 3 Oct 2001 14:50:54 -0400 (EDT)
On 23 Sep 2001, David Bolcsfoldi wrote:
> are there any plans to add password, username, fragment and query
> support to GURL ?
> ex.
> http://someuser:somepass someplace com/some.file?query#fragment
Well, when I get around to it or get a patch. It's not top priority for
me right now.
> Is it ok to just add it to GURL and changing the functions associated
> with it (gnet_url_*) ?
Yes, please do. I'd gratefully take a patch. There's an excerpt from the
RFC I clipped a while ago below (if you haven't already found it).
David
BTW, the current plan is to add experimental SOCKS support (Marius is
finishing up) and then release 1.1.1.
============
ftp://ftp.isi.edu/in-notes/rfc2396.txt
B. Parsing a URI Reference with a Regular Expression
As described in Section 4.3, the generic URI syntax is not sufficient
to disambiguate the components of some forms of URI. Since the
"greedy algorithm" described in that section is identical to the
disambiguation method used by POSIX regular expressions, it is
natural and commonplace to use a regular expression for parsing the
potential four components and fragment identifier of a URI reference.
The following line is the regular expression for breaking-down a URI
reference into its components.
^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?
12 3 4 5 6 7 8 9
The numbers in the second line above are only to assist readability;
they indicate the reference points for each subexpression (i.e., each
paired parenthesis). We refer to the value matched for subexpression
<n> as $<n>. For example, matching the above expression to
http://www.ics.uci.edu/pub/ietf/uri/#Related
results in the following subexpression matches:
$1 = http:
$2 = http
$3 = //www.ics.uci.edu
$4 = www.ics.uci.edu
$5 = /pub/ietf/uri/
$6 = <undefined>
$7 = <undefined>
$8 = #Related
$9 = Related
where <undefined> indicates that the component is not present, as is
the case for the query component in the above example. Therefore, we
can determine the value of the four components and fragment as
scheme = $2
authority = $4
path = $5
query = $7
fragment = $9
and, going in the opposite direction, we can recreate a URI reference
from its components using the algorithm in step 7 of Section 5.2.
--
__ _ __ David Helder - dhelder umich edu
___/ /__ __ __(_)__/ / <http://www.eecs.umich.edu/~dhelder>
/ _ / _ `/ |/ / / _ / Jungle Monkey: <http://www.junglemonkey.net>
|_,_/|_,_/|___/_/|_,_/ Paper CD Case: <http://www.papercdcase.com>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]