[Bugs & Requests][Wiki]

6.2. VOP URLs

Vobjects are addressed by URLs[RFC 2396] in the following format:

Figure 6-1. VOP URL Syntax



VOP URLs use the "vop" scheme.


This mandatory component may either be an IP address, a locally known host name, or preferably a fully qualified DNS host name.


This optional component is any valid port number, though unrestricted ports above 1024 should be used. If omitted, it defaults to 4231.


This is an optional component. When present, it is separated from the base URL by a slash. Note that this slash is not part of the path component. The path itself is a slash-separated list of one or more non-empty labels; in contrast to the leading slash, intermediary slashes are part of the path component. An URL without a path component identifies a site, an URL with path component identifies a Vobject hosted at or linked from that site. The object path is described further, below.

A site may have more than one URL. Specifically, all public names and addresses (IP address, host alias, DNS CNAME, etc.) of a site's host can be used interchangeably as hostname component. Multiple port numbers could be used too, in case of a load balanced server or similar, though this is rarely used. All valid hostname and port combinations comprise the site aliases for a site. The list of valid site aliases is established in the site peering process, see below.

In a similar manner, Vobjects may also have more than one URL. For once, the URL base identifying the Vobjects site may vary as described above. But in addition to that, the same Vobject may also be accessed via different indirections through the links of other Vobjects.

More on the Object Path. The labels of a path correspond to the contextual names or list positions in Vobjects child links. In the latter case, the label has the form #n, with n being the link number. Starting at the site identified by the base URL, a Vobject can be found by traversing the graph, following the links specified by the path labels. As the graph may contain cycles, each Vobject may be reachable by different paths, and thus can have different URLs. However, no matter where a Vobject resides in the graph, it is always also a direct child of the site that hosts it. The path only consists of a single label in this case. The corresponding URL is called the canonical URL of the Vobject. All other Vobject URLs must be resolved to the canonical URL before they can be used in VOS messaging.