URI scheme

From Wikipedia, the free encyclopedia

A URI scheme is the top level of the URI (Uniform Resource Identifier) naming structure. All URIs and absolute URI references are formed with a scheme name, followed by a colon character, and the remainder of the URI called (in the outdated RFCs 1738 and 2396, but not the current STD 66/RFC 3986) the scheme-specific part. The syntax and semantics of the scheme-specific part are left largely to the specifications governing individual schemes, subject to certain constraints such as reserved characters and how to "escape" them.

URI schemes are sometimes erroneously referred to as "protocols", or specifically as URI protocols or URL protocols, since most were originally designed to be used with a particular protocol, and often have the same name. The http: scheme, for instance, is generally used for interacting with Web resources using HyperText Transfer Protocol. Today, URIs with that scheme are also used for other purposes, such as RDF resource identifiers and XML namespaces, that are not related to the protocol. Furthermore, some URI schemes are not associated with any specific protocol (e.g. "file:") and many others do not use the name of a protocol as their prefix (e.g. "news:").

URI schemes should be registered with IANA, although many non-registered schemes are used in practice. RFC 2717 describes the procedures for registering new URI schemes. RFC 2718 provides guidelines for the development of new URI schemes. Both of these RFCs are currently undergoing revision.

Contents

Internet standard STD 66 (also RFC 3986) defines the generic syntax to be used in all URI schemes. Every URI is defined as consisting of four parts, as follows:

 :  [ ?  ] [ #  ]

The scheme name consist of a letter followed by any combination of letters, digits, and the plus ("+"), period ("."), or hyphen ("-") characters; and is terminated by a colon (":").

The hierarchical part of the URI is intended to hold identification information hierarchical in nature. Usually this part begins with a double forward slash ("//"), followed by an authority part and an optional path. The authority part holds an optional user information part terminated with "@" (e.g. username:password@), a hostname (i.e. domain name or IP address), and an optional port number preceded by a colon ":". The path part is a sequence of segments (conceptually similar to directories, though not necessarily representing them) separated by a forward slash ("/"). Each segment can contain parameters separated from it using a semicolon (";"), though this is rarely used in practice.

The query is an optional part separated with a question mark, which contains additional identification information which is not hierarchical in nature. Its syntax is not generically defined, but is commonly organized as a sequence of = pairs separated by an ampersand, e. g. key1=value1&key2=value2&key3=value3.

The fragment is an optional part separated from the front parts by a hash ("#"). It holds additional identifying information which allows indirect identification of a secondary resource, e.g. a section heading in an article identified by the remainder of the URI.

The following are two example URIs and their component parts (taken from STD 66):

  foo://example.com:8042/over/there?name=ferret#nose
  \ /   \______________/\_________/ \_________/ \__/
   |           |             |           |        |
scheme     authority        path       query   fragment
   |   ______________________|_
  / \ /                        \
  urn:example:animal:ferret:nose

The official URI schemes registered with the IANA follow.

Scheme Purpose Defined by General format Notes
aaa: Diameter Protocol RFC 3588 aaa: FQDN [port] [transport] [protocol]
aaas: Diameter Protocol with Secure Transport RFC 3588 aaas: FQDN [port] [transport] [protocol]
acap: application configuration access protocol RFC 2244 acap://url-server/url-enc-entry [url-filter] [url-extension] URL scheme used within the ACAP protocol for the "subdataset" attribute, referrals and inheritance
cap: calendar access protocol RFC 4324 "cap://" csidpart [ "/" relcalid ] URL scheme used to designate both calendar stores and calendars accessible using the CAP protocol
cid: Referencing individual parts of an SMTP/MIME message RFC 2392 cid: e.g. referencing an attached image within a formatted e-mail. (See also mid:)
crid: TV-Anytime Content Reference Identifier RFC 4078 crid:/// Allow references to scheduled publications of broadcast media content.
data: Inclusion of small data items inline RFC 2397 data:;[base64,]
dav: HTTP Extensions for Distributed Authoring (WebDAV) RFC 2518 dav: Used for internal identifiers only; WebDAV itself addresses resources using the http: and https: schemes. [1]
dict: dictionary service protocol RFC 2229 dict://;@:/d:::


dict://;@:/m::::

refer to definitions or word lists available using the DICT protocol
dns: Domain Name System RFC 4501 dns://dnsauthority/dnsname?dnsquery designates a DNS resource record set, referenced by domain name, class, type, and, optionally, the authority
fax: used for telefacsimile numbers RFC 2806 fax: Seems to be deprecated in RFC 3966 in favour of tel:
file: addressing files on local or network file systems RFC 1738 generic syntax
(often appears as file:///path, the 3rd '/' representing the root directory of the local system)
Unusual in not being bound to any network protocol, and not usable in an Internet context.
ftp: FTP resources RFC 1738 generic syntax
go: RFC 4266 go://[]?[]*[;=[,]]


go:*[;=[,]]

gopher: used with Gopher protocol RFC 4266 gopher://://
http: HTTP resources RFC 2616 generic syntax
https: HTTP connections secured using SSL/TLS RFC 2817 generic syntax
imap: Accessing e-mail resources through IMAP RFC 2192
ldap: LDAP directory request RFC 2255
RFC 4516
mailto: SMTP e-mail addresses and default content RFC 2368 mailto:
?header1=value1&header2=value2
example: mailto:jsmith@example.com?subject=A%20Test&body=My%20idea%20is%3A%20%0A
Headers are optional, but often include subject=; body= can be used to pre-fill the body of the message.
mid: Referencing SMTP/MIME messages, or parts of messages. RFC 2392 mid: or mid:/ (See also cid:)
news: (Usenet) newsgroups and postings RFC 1738 news: or news: References a particular resource, regardless of location.
nfs: Network File System resources RFC 2224 generic syntax
nntp: Usenet NNTP RFC 1738 nntp://:// Referencing a specific host is often less useful than referencing the resource generically, as NNTP servers are not always publicly accessible
pop: accessing mailbox through POP3 RFC 2384
pres: Used in Common Profile for Presence (CPP) to identify presence RFC 3859 pres:
?header1=value1&header2=value2
Similar to "mailto:"
sip: used with Session Initiation Protocol (SIP) RFC 3969
RFC 3261
sips: Secure equivalent of sip: RFC 3969
RFC 3261
snmp: Simple Network Management Protocol RFC 4088 snmp://[user@]host[:port][/[[;]][/]]
examples: snmp://example.com//1.3.6.1.2.1.1.3+ snmp://tester5@example.com:8161/bridge1;800002b804616263
tel: used for telephone numbers RFC 3966
RFC 2806
tel:
telnet: used with telnet RFC 4248 telnet://:@[:/]
urn: Uniform Resource Names RFC 2141 urn::
wais: used with Wide area information server (WAIS) RFC 4156
xmpp: XMPP (Jabber) RFC 4622 xmpp:
/?
xmpp://... is also allowed, xmpp:
is the simplest form

Scheme Purpose Defined by General format Notes
about: Displaying product information and internal information Un-standardised Widely used by web browsers, sometimes even providing interactive resources
aim: Launching AOL Instant Messenger conversations AOL aim:goim?screenname=&message=
callto: Launching Skype call (unofficial; see also skype:) Skype callto: or callto: [2] Works with current version of Skype with Firefox, Internet Explorer and Safari
ed2k: resources available using the eDonkey2000 network eDonkey2000 ed2k://|file||||/ Links to servers are also possible, as are additional parameters. Official documentation from eDonkey2000 website
feed: web feed subscription feed:[//]
irc: Connecting to a server, joining a channel IETF Draft
Old IETF Draft
irc://[:]/[[?]] "host" may optionally be an IRC network name, assuming the client knows a server associated with the name
ircs: Secure equivalent of irc: IETF Draft ircs://[:]/[[?]] See irc:
lastfm: Launching Lastfm music client Lastfm lastfm://globaltags/ or lastfm://user//
magnet: "magnet links" Magnet-URI Project magnet:?xt=urn:sha1:&dn=
(other parameters are also possible)
Used by various peer-to-peer clients, usually providing the hash of a file to be located on the network.
mms: Windows streaming media mms://:/ Used by Windows Media Player to stream audio and/or video.
msnim: Adding a contact, or starting a conversation in Windows Live Messenger Windows Live Messenger msnim:chat?contact=
psyc: Used to identify or locate a person, group, place or a service and specify its ability to communicate PSYC psyc:[//[:[][]]/[][#] Official documentation from PSYC website
rsync: Rsync rsync://[:]/
skype: Launching Skype call (official; see also callto:) Skype skype:? Official documentation from Skype website
ssh: SSH connections (like telnet:) and IETF Draft ssh://[[;fingerprint=]@][:]
sftp: SFTP file transfers (not be to confused with FTPS (FTP/SSL)) IETF Draft sftp://[[;fingerprint=]@][:]//
smb: Accessing Samba shares (like NFS), see CIFS, Windows file sharing etc. IETF Draft smb://[@]host[:][/[]][?=;=] or smb://[@]workgroup[:][/]
soldat: Joining servers Soldat soldat://:/
example: soldat://127.0.0.1:23073/
Official note in Manual
steam: Interact with Steam: install apps, purchase games, run games, etc. Steam, Valve Corporation steam: or steam:/// Official documentation from Valve Developer Community website
unreal: Joining servers Unreal unreal://[:]/ Unreal legacy "protocol"
ut2004: Joining servers Unreal Tournament 2004 ut2004://[:][/map?options] Documentation from Unreal Developer Network
xfire: Adding friends and servers, joining servers, changing status text. Xfire xfire:?=&= Official documentation from Xfire website
ymsgr: Sending an instant message to a Yahoo! Contact. Yahoo! Instant Messenger With Voice ymsgr:sendIM?

Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.