RFC 2718 (rfc2718) - Page 2 of 10
Guidelines for new URL Schemes
Alternative Format: Original Text Document
RFC 2718 Guidelines for new URL Schemes November 1999
2. Guidelines for new URL schemes
Because new URL schemes potentially complicate client software, new
schemes must have demonstrable utility and operability, as well as
compatibility with existing URL schemes. This section elaborates
these criteria.
2.1 Syntactic compatibility
New URL schemes should follow the same syntactic conventions of
existing schemes when appropriate. If a URI scheme that has embedded
links in content accessed by that scheme does not share syntax with a
different scheme, the same content cannot be served up under
different schemes without rewriting the content. This can already be
a problem, and with future digital signature schemes, rewriting may
not even be possible. Deployment of other schemes in the future
could therefore become extremely difficult.
2.1.1 Motivations for syntactic compatibility
Why should new URL schemes share as much of the generic URI syntax
(that makes sense to share) as possible? Consider the following:
o If fragment syntax isn't shared between two schemes, (e.g. ""), you can't move individual completely self
referential documents between schemes without rewriting the
embedded references within the document. In the Web, the fragment
syntax is a property of the media type, and evaluated by the
client.
o If fragment syntax is not shared between different media types of
the same capability (e.g. HTML, XML, Word, or image types such as
GIF, JPEG, PNG) then you can't have a URI reference that can
evolve to superior media types as they become available, or even
likely work properly today with content negotiation.
o If relative syntax (to the extent of understanding the URI is
relative, and what part of the URI string is relative) isn't
shared between two schemes, (e.g. ""), you can't
move sets of documents that are internally self referential
between schemes without rewriting the embedded URIs.
o If the ".." syntax as a path component in relative URI's isn't
shared between schemes, you can't easily have sets of document
sets and refer to them between schemes without rewriting the
embedded references.
Masinter, et al. Informational