The software was modernized and extended in 2007 by Zepheira under contract to OCLC and the official website moved to http://purlz.org (the 'Z' came from the Zepheira name and was used to differentiate the PURL open-source software site from the PURL resolver operated by OCLC).
The transfer re-enabled the ability to manage PURL definitions that had been disabled in the OCLC-hosted service for several months.
The PURL concept allows for generalized URL curation of HTTP URIs on the World Wide Web.
Hyperlink integrity is a design trade-off of the World Wide Web, but may be partially restored by allowing resource users or third parties to influence where and how a URL resolves.
Curation of virtual resources has been defined as, "the active involvement of information professionals in the management, including the preservation, of digital data for future use.
The scheme part tells a computer program, such as a Web browser, which protocol to use when resolving the address.
Three additional types of PURLs ("chain", "partial' and "clone") are given mnemonic names related to their functions.
Some operators prefer to use PURLs of type 301 (indicating that the final URI should be addressed in future requests).
They may be used to gather runtime status reports, perform distributed queries or any other type of data collection where a persistent identifier is desired.
This subtlety is useful when the HTTP URI requested is used as an identifier for a physical or conceptual object that cannot be represented as an information resource.
PURLs of type 303 are used most often to redirect to metadata in a serialization format of the Resource Description Framework (RDF) and have relevance for Semantic Web and linked data content.
This use of the 303 HTTP status code is conformant with the http-range-14 finding of the Technical Architecture Group of the World Wide Web Consortium.
A PURL of type "307" informs a user that the resource temporarily resides at a different URL from the norm.
One PURL is sufficient to serve as a top-level node for a hierarchy on a single target server.
Partial redirections at the level of a URL path do not violate common interpretations of the HTTP 1.1 specification.
Fragment identifiers indicate a pointer to more specific information within a resource and are designated as following a # separator in URIs.
Bos suggested that fragments should be retained and passed through to target URLs during HTTP redirections resulting in 300 (Multiple Choice), 301 (Moved Permanently), 302 (Found) or 303 (See Other) responses unless a designated target URL already includes a fragment identifier.
[9] Makers of Web clients such as browsers have "generally"[9] failed to follow Bos' guidance.
Starting with PURLz 1.0 series, the PURL service implements partial redirections inclusive of fragment identifiers by writing fragments onto target URLs in an attempt to comply with[9] and avoid problematic and inconsistent behavior by browser vendors.