Module Url
The Url module performs a number of useful operations on URL strings. For example, it is sometimes useful to break up a URL into its constituent parts, modify some of them, and glue the parts back together again. In the same manner, query strings (the part of a URL that follows the question mark) also need to be manipulated.
For example, given the URL (a typical AltaVista query)
http://www.altavista.digital.com/cgi-bin/query
?pg=q&kl=XX&q=%2Bjava+%2Bcoffee
the Split function will return an object as follows:
[.
query = "?pg=q&kl=XX&q=%2Bjava+%2Bcoffee",
path = "/cgi-bin/query",
host = "www.altavista.digital.com",
ref = "",
scheme = "http"
.]
Applying the SplitQuery function to the query field of this object will return the following object:
[. kl = "XX", pg = "q", q = "+java +coffee" .]
Behind the scenes, decoding the query string involves calls to the Decode function to remove the character encodings (eg. %@B and so on).
The Glue and GlueQuery functions will glue those objects back together again. The field names generated by the Split function are summarized in See URL constituents. Note that the current implementation can process only the http, ftp, and file protocol schemes.
Module Url
|
Function
|
Description
|
|
Decode(s: string): string
|
Decodes a string in the MIME type encoding "x-www-form-urlencoded". The complementary function is called Encode.
|
|
Encode(s: string): string
|
Encodes a string in the MIME type encoding "x-www-form-urlencoded" (which is generally used to encode input form parameters). The complementary function is called Decode.
|
|
Glue(obj: object): string
|
Takes the constituent parts of a URL (as broken up by Split), and glues them together to form a URL again.
|
|
GlueQuery(obj: object): string
|
Given an object constructed from SplitQuery, GlueQuery returns the original query string again.
|
|
Resolve(base: string, rel: string): string
|
Given the base URL base and the relative URL rel, return the resolved URL.
|
|
Split(url: string): object
|
Splits a URL into its constituent parts (like scheme, host, path, query etc.). Each part becomes a field of the object returned.
|
|
SplitQuery(query: string): object
|
Splits a query string into its constituent parts. Each part becomes a field of the object returned. Query strings typically follow the ? in URLs.
|
URL constituents
|
Field name
|
Used in
schemes
|
Description
|
|
scheme
|
All
|
http, ftp, file, etc.
|
|
host
|
http, ftp, file
|
Host name.
|
|
port
|
http, ftp
|
TCP/IP connection port.
|
|
path
|
http, ftp, file
|
Full path name of the addressed resource.
|
|
query
|
http
|
Query string (after '?' in URL)
|
|
ref
|
http, file
|
Anchor reference string (after '#' in URL).
|
|
user
|
ftp
|
Login user name.
|
|
password
|
ftp
|
Login password.
|
|
type
|
ftp
|
File transfer type 'a', 'i', 'd'.
|
|
url
|
Unknown schemes
|
Contains the complete URL because no constituents could be extracted (because the scheme is unknown).
|
Up Previous Next