uri(n) | Tcl Uniform Resource Identifier Management | uri(n) |
uri - URI utilities
package require Tcl 8.2
package require uri ?1.2.1?
uri::split url ?defaultscheme?
uri::join ?key value?...
uri::resolve base url
uri::isrelative url
uri::geturl url ?options...?
uri::canonicalize uri
uri::register schemeList script
This package contains two parts. First it provides regular expressions for a number of url/uri schemes. Second it provides a number of commands for manipulating urls/uris and fetching data specified by them. For the latter this package analyses the requested url/uri and then dispatches it to the appropriate package (http, ftp, ...) for actual fetching.
The package currently does not conform to RFC 2396 (http://www.rfc-editor.org/rfc/rfc2396.txt), but quite likely should be. Patches and other help are welcome.
The set of constituents of an url (= the set of keys in the returned dictionary) is dependent on the scheme of the url. The only key which is therefore always present is scheme. For the following schemes the constituents and their keys are known:
Note: file-urls are an exception to the rule described above. They are handled internally.
It is not possible to specify results of the command. They depend on the geturl-command for the scheme the request was dispatched to.
In addition to the commands mentioned above this package provides regular expression to recognize urls for a number of url schemes.
For each supported scheme a namespace of the same name as the scheme itself is provided inside of the namespace uri containing the variable url whose contents are a regular expression to recognize urls of that scheme. Additional variables may contain regular expressions for parts of urls for that scheme.
The variable uri::schemes contains a list of all supported schemes. Currently these are ftp, ldap, file, http, gopher, mailto, news, wais and prospero.
Extending the range of schemes supported by uri::split and uri::join is easy because both commands do not handle the request by themselves but dispatch it to another command in the uri namespace using the scheme of the url as criterion.
uri::split and uri::join call Split[string totitle <scheme>] and Join[string totitle <scheme>] respectively.
Original code (regular expressions) by Andreas Kupries. Modularisation by Steve Ball, also the split/join/resolve functionality.
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category uri of the Tcllib SF Trackers [http://sourceforge.net/tracker/?group_id=12883]. Please also report any ideas for enhancements you may have for either package and/or documentation.
fetching information, file, ftp, gopher, http, ldap, mailto, news, prospero, rfc 2255, rfc 2396, uri, url, wais, www
Networking
1.2.1 | uri |