URI scheme

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In the field of computer networking, a URI scheme is the top level of the uniform resource identifier (URI) 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 frequently and incorrectly 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 non-registered schemes are used in practice. RFC 4395 describes the procedures for registering new URI schemes.

Generic syntax[edit]

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:

<scheme name> : <hierarchical part> [ ? <query> ] [ # <fragment> ]

The scheme name consists of a sequence of characters beginning with a letter and followed by any combination of letters, digits, plus ("+"), period ("."), or hyphen ("-"). Although schemes are case-insensitive, the canonical form is lowercase and documents that specify schemes must do so with lowercase letters. It is followed by a colon (":").

The hierarchical part of the URI is intended to hold identification information hierarchical in nature. If this part begins with a double forward slash ("//"), it is followed by an authority part and a path. If the hierarchical part doesn't begin with ("//") it contains only a path.

  • The authority part holds an optional user-information part, terminated with "@" (e.g. username:password@); a hostname (e.g., domain name or IP address); and an optional port number, preceded by a colon ":".
  • The path part, if present, may optionally begin with a single forward slash ("/"). It may not begin with two slash characters ("//"). The path is a sequence of segments (conceptually similar to directories, though not necessarily representing them) separated by a forward slash ("/"). Historically, each segment was specified to contain parameters separated from it using a semicolon (";"), though this was rarely used in practice and current specifications allow but no longer specify such semantics.

The query is an optional part, separated by a question mark ("?"), that contains additional identification information that is not hierarchical in nature. The query string syntax is not generically defined, but it is commonly organized as a sequence of <key>=<value> pairs, with the pairs separated by a semicolon[1][2][3] or an ampersand. For example:

Semicolon: key1=value1;key2=value2;key3=value3
Ampersand: 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 that provides direction to a secondary resource, e.g., a section heading (in an article) identified by the remainder of the URI. When the primary resource is an HTML document, the fragment is often an id attribute of a specific element and web browsers will make sure this element is visible.

Examples[edit]

The following figure displays two example URIs (foo://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose and urn:example:animal:ferret:nose) and their component parts. (The examples are derived from RFC 3986 — STD 66, chapter 3).

  foo://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose
  \_/   \_______________/ \_________/ \__/            \___/ \_/ \______________________/ \__/
   |           |               |       |                |    |            |                |
   |       userinfo         hostname  port              |    |          query          fragment
   |    \________________________________/\_____________|____|/ \__/        \__/
 scheme                 |                          |    |    |    |          |
  name              authority                      |    |    |    |          |
   |                                             path   |    |    interpretable as keys
 \_______________________________________/              |    |
   |                  |                                 |    |
   |                host                                |    |
   |    \_______________________________________________|____|/       \____/     \_____/
   |                         |                          |    |          |           |
 scheme              hierarchical part                  |    |    interpretable as values
  name                                                  |    |
   |            path               interpretable as filename |
   |   ___________|____________                              |
  / \ /                        \                             |
  urn:example:animal:ferret:nose               interpretable as extension

              authority
         _________|________
 scheme /                  \
  name  userinfo  hostname       query
  _|__   ___|__   ____|____   _____|_____
 /    \ /      \ /         \ /           \
 mailto:username@example.com?subject=Topic

Official IANA-registered schemes[edit]

The official URI schemes registered with the IANA are as follows (note that "IETF Draft" in no way is a finalized specification and must not be treated so; refer to Section 2.2 of RFC 2026 for more details):

Scheme Purpose Status Defined by General format Notes
aaa
aaas
Diameter Protocol 1Permanent RFC 3588
RFC 6733
aaa[s]://<host>[:<port>][;transport=<transport>][;protocol=<protocol>]

example:
aaa://host.example.com:1813;transport=udp;protocol=radius

about Displaying product information and internal information 1Permanent RFC 6694 See about URI scheme for more details. Widely used by web browsers, sometimes even providing interactive resources. The Opera web browser forwards to their opera: scheme instead.
acap Application Configuration Access Protocol 1Permanent RFC 2244 acap://[<user>[;AUTH=<type>]@]<host>[:<port>]/<entry> URL scheme used within the ACAP protocol for the "subdataset" attribute, referrals and inheritance
acct Identifying user account 1Permanent IETF Draft
adiumxtra Direct installation of Adium Xtras (plugins). 2Provisional IANA registration template
The Adium Team
adiumxtra://www.adiumxtras.com/download/0000 0000 refers to a specific Xtra
afp Accessing Apple Filing Protocol shares 2Provisional IANA registration template
IETF Draft
over TCP/IP: afp://[<user>@]<host>[:<port>][/[<path>]]

over AppleTalk: afp:/at/[<user>@]<host>[:<zone>][/]

afs Andrew File System global file names 2Provisional RFC 1738
aim Controlling AOL Instant Messenger. 2Provisional IANA registration template
AOL
aim:<function>?<parameters> Functions include goim, addbuddy, and buddyicon.
apt Experimental method of installing software using APT. 2Provisional IANA registration template apt:<package name> Commonly found on websites which contain Debian software repositories.
attachment Attaching resources to MHTML pages 2Provisional IANA registration template attachment:/<resource number>/<filename> Opera-specific
aw Link to an Active Worlds world 2Provisional IANA registration template
Activeworlds Inc.
aw://<worldserver host>:<worldserver port>/<worldname> Mostly found in HTTP referers when users open a website from within an Active Worlds world.
barion Send e-money to a Barion e-money wallet 2Provisional IANA registration template
Barion URI scheme
barion:<target>[?[amount=<amount>][&][currency=<currency>][&][comment=<comment>][&][sender=<sender>][&][type=purchase|charity|p2p]] Used by Barion mobile apps.
beshare Open a search query on a BeShare server 2Provisional IANA registration template
BeShare source code
beshare://<servername>/<query> Mostly used internally, with variants.
bitcoin Send money to a Bitcoin address 2Provisional IANA registration template
Bitcoin URI Scheme
bitcoin:<address>[?[amount=<size>][&][label=<label>][&][message=<message>]]
bolo Join an existing bolo game. 2Provisional IANA registration template bolo://<hostname>/ Mostly passed via IRC or via tracker servers.
callto Launching Skype call (+And in Hungary the KLIP Software call too) (see also skype:) 2Provisional IANA registration template
old version of IETF Draft
callto:<screenname> or
callto:<phonenumber> [1]
Introduced with Microsoft NetMeeting. Works with current version of Skype with Internet Explorer, Opera and Safari
cap Calendar access protocol 1Permanent RFC 4324 generic syntax URL scheme used to designate both calendar stores and calendars accessible using the CAP protocol
chrome Specifies user interfaces built using XUL in Mozilla-based browsers. 2Provisional IANA registration template
Mozilla
chrome://<package>/<section>/<path> (Where <section> is either "content", "skin" or "locale") Works only in Mozilla-based browsers such as Firefox, SeaMonkey and Netscape. Not related to the Google Chrome browser.
chrome Used for the management of Google Chrome's settings. In contrast with other browsers, its preferences appear as web-pages instead of dialog boxes. 2Provisional IANA registration template
Google
chrome://<settings>/<path>/[<specificSetting>] Works only in Google Chrome.
chrome-extension Manage the settings of extensions which have been installed. 2Provisional IANA registration template
Google
chrome-extension://<extensionID>/<pageName>.html (Where <extensionID> is the ID given to the extension by "Chrome Web Store" and <pageName> is the location of an HTML page) Works only in Google Chrome.
com-eventbrite-attendee 2Provisional IANA registration template
cid Referencing individual parts of an SMTP/MIME message 1Permanent RFC 2111
RFC 2392
cid:<content-id> e.g. referencing an attached image within a formatted e-mail. (See also mid:)
coap
coaps
Constrained Application Protocol 1Permanent RFC 7252 coap[s]://<host>[:<port>]/<path>[?<query>] Identify CoAP resources and provide a means of locating the resource.
content Accessing an Android content provider. 2Provisional IANA registration template
Open Handset Alliance
content://provider/<path> Performs a query on an Android Content Provider
crid TV-Anytime Content Reference Identifier 1Permanent RFC 4078 crid://<host>/<data> Allow references to scheduled publications of broadcast media content.
cvs Provides a link to a Concurrent Versions System (CVS) Repository 2Provisional IANA registration template
Concurrent Versions System
cvs://<method:logindetails>@<repository>/<modulepath>;[date=date to retrieve | tag=tag to retrieve]
data Inclusion of small data items inline 1Permanent RFC 2397 data:<mediatype>[;base64],<data>
dav HTTP Extensions for Distributed Authoring (WebDAV) 1Permanent RFC 2518
RFC 4918
dav: Used for internal identifiers only; WebDAV itself addresses resources using the http: and https: schemes. [2]
dict Dictionary service protocol 1Permanent RFC 2229 dict://<user>;<auth>@<host>:<port>/d:<word>:<database>:<n>

dict://<user>;<auth>@<host>:<port>/m:<word>:<database>:<strat>:<n>

refer to definitions or word lists available using the DICT protocol
dlna-playsingle
dlna-playcontainer
2Provisional IANA registration template IANA registration template
dns Domain Name System 1Permanent RFC 4501 dns:[//<host>[:<port>]/]<dnsname>[?<dnsquery>]

examples:
dns:example?TYPE=A;CLASS=IN
dns://192.168.1.1/ftp.example.org?type=A

designates a DNS resource record set, referenced by domain name, class, type, and, optionally, the authority
dtn DTNRG research and development 2Provisional RFC 5050
dvb 2Provisional IETF Draft
ed2k Resources available using the eDonkey2000 network 2Provisional IANA registration template
eDonkey2000
ed2k://|file|<filename>|<size of file>|<hash of file>|/ or
ed2k://|server|<host>|<port>|/
Links to servers are also possible, as are additional parameters. Official documentation from eDonkey2000 website at the Wayback Machine
facetime FaceTime is a video conferencing software developed by Apple for iPhone 4, the fourth generation iPod Touch, and computers running Mac OS X. 2Provisional IANA registration template
Apple Inc.
facetime://<address>|<MSISDN>|<mobile number>

example:
facetime://+19995551234

Apple has not published documentation on this protocol yet.
fax Used for telefacsimile numbers 3Historical RFC 2806
RFC 3966
fax:<phonenumber> Deprecated in RFC 3966 in favour of tel:. Listed as "3Historical"
feed web feed subscription 2Provisional IANA registration template feed:<absolute_uri> or
feed://<hierarchical part>

examples:
feed://example.com/rss.xml
feed:https://example.com/rss.xml

See Feed URI scheme for a detailed overview of common implementations, supported software, and critics.
file Addressing files on local or network file systems 1Permanent RFC 1738
RFC 3986
file://[host]/path or

(RFC 3986) file:[//host]/path

Since this usually used for local files the host from RFC 1738 is often empty leading to a starting triple /. RFC 3986 allows an absolute path with no host part.
finger Querying user information using the Finger protocol 2Provisional IANA registration template
IETF Draft
finger://host[:port][/<request>]
fish Accessing another computer's files using the SSH protocol 2Provisional IANA registration template
fish KDE kioslave
fish://[<username>[:<password>]@]<hostname>[:<port>] See Files transferred over shell protocol for details about the protocol.
ftp FTP resources 1Permanent RFC 1738
IETF Draft
Old IETF Draft
generic syntax
geo A Uniform Resource Identifier for Geographic Locations 1Permanent RFC 5870 geo:<lat>,<lon>[,<alt>][;u=<uncertainty>]
(for WGS-84)
Other coordinate reference systems (including those for non-terrestrial globes, such as The Moon and Mars) will be supported, once registered.
gg Starting chat with Gadu-Gadu user 2Provisional IANA registration template
Gadu-Gadu
gg:<userid>
git Provides a link to a GIT repository 2Provisional IANA registration template
Git
Github example: git://github.com/user/project-name.git
gizmoproject Gizmo5 calling link. 2Provisional IANA registration template gizmoproject://call?id=<gizmo_id> May use sip:// instead of gizmoproject:// in recent versions of Gizmo5.
go Common Name Resolution Protocol 1Permanent RFC 3368 go://[<host>]?[<common-name>]*[;<attribute>=[<type>,]<value>] or
go:<common-name>*[;<attribute>=[<type>,]<value>]
gopher Used with Gopher protocol 1Permanent RFC 4266 gopher://<host>:<port>/<item type><path>
gtalk Start a chat with a Google Talk user 2Provisional IANA registration template
Google Talk
gtalk:chat?jid=example@gmail.com See Google Talk, XMPP, and http://juberti.blogspot.com/2006/11/gtalk-uri.html for more information
h323 Used with H.323 multimedia communications 1Permanent RFC 3508 h323:[<user>@]<host>[:<port>][;<parameters>]
hcp Displaying a help page on Microsoft Windows Help and Support Center. 2Provisional IANA registration template
Microsoft
hcp://system/<File>.htm (Where <File> is the file to load) Works only on Windows XP. Later replaced by ms-help:.
http HTTP resources 1Permanent RFC 1738
RFC 2616
(makes
RFC 2068
obsolete)
RFC 7230
generic syntax
https HTTP connections secured using SSL/TLS 1Permanent RFC 2817
RFC 7230
generic syntax
iax Inter-Asterisk eXchange protocol version 2 1Permanent RFC 5456 iax:[<username>@]<host>[:<port>][/<number>[?<context>]]
examples
iax:[2001:db8::1]:4569/alice?friends
iax:johnQ@example.com/12022561414
icap Internet Content Adaptation Protocol 1Permanent RFC 3507
icon 2Provisional IETF Draft
im Instant messaging protocol 1Permanent RFC 3860 im:<username>@<host>, and also im:sip:<username>@<host> for MS Communicator launching Works as xmpp: URI for single user chat sessions.
imap Accessing e-mail resources through IMAP 1Permanent RFC 2192
RFC 5092
imap://[<user>[;AUTH=<type>]@]<host>[:<port>]/<command>
info Information Assets with Identifiers in Public Namespaces 1Permanent RFC 4452
ipn 2Provisional RFC 6260
ipp Internet Printing Protocol 1Permanent RFC 3510
irc Connecting to an Internet Relay Chat server to join a channel. 2Provisional IANA registration template
IETF Draft
Old IETF Draft
irc://<host>[:<port>]/[<channel>[?<password>]] Assuming the client knows a server associated with the name, "host" may optionally be an IRC network name.
irc6 IPv6 equivalent of irc 2Provisional IANA registration template irc6://<host>[:<port>]/[<channel>[?<password>]] See irc
ircs Secure equivalent of irc 2Provisional IANA registration template
IETF Draft
ircs://<host>[:<port>]/[<channel>[?<password>]] See irc
iris
iris.beep
iris.xpc
iris.xpcs
iris.lws
Internet Registry Information Service 1Permanent RFC 3981 RFC 3983 RFC 4992 RFC 4992 RFC 4993
itms Used for connecting to the iTunes Music Store 2Provisional IANA registration template
Apple Inc
itms:
jabber 1Permanent IANA registration template
jar Compressed archive member 2Provisional IANA registration template
Java API
jar:<url>!/[<entry>] Works for any ZIP based file.
jms Java Message Service 2Provisional RFC 6167
keyparc Keyparc encrypt/decrypt resource. 2Provisional IANA registration template
Bloombase
keyparc://encrypt/<username>/<uri> or

keyparc://decrypt/<username>/<uri>

lastfm Connecting to a radio stream from Last.fm. 2Provisional IANA registration template
Last.fm
lastfm://<radio_stream> or lastfm://globaltags/<genre> or
lastfm://user/<username>/<stuff>
ldap LDAP directory request 1Permanent RFC 2255
RFC 4516
ldap://[<host>[:<port>]][/<dn> [?[<attributes>][?[<scope>][?[<filter>][?<extensions>]]]]]

example:
ldap://ldap1.example.net:6666/o=University%20of%20Michigan, c=US??sub?(cn=Babs%20Jensen)

ldaps Secure equivalent of ldap 2Provisional IANA registration template
Old version of IETF Draft
ldaps://[<host>[:<port>]][/<dn> [?[<attributes>][?[<scope>][?[<filter>][?<extensions>]]]]] Not an IETF standard, but commonly used in applications.
magnet "magnet links" 2Provisional IANA registration template
Magnet-URI Project
magnet:?xt=urn:sha1:<hash of file>&dn=<display name>
(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.
mailserver Access to data available from mail servers 3Historical RFC 6196
mailto SMTP e-mail addresses and default content 1Permanent RFC 6068 mailto:<address>[?<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.
maps "map links" 2Provisional IANA registration template maps:q=<physical location> Some mobile web browsers will launch a dedicated mapping application. See also "geo:" (RFC 5870)
market Opens Google Play 2Provisional IANA registration template
Android [3]
  • market://details?id=Package_name or
  • market://search?q=Search_Query or
  • market://search?q=pub:Publisher_Name
Supported by Android devices
message Direct link to specific email message 2Provisional IANA registration template
Apple Inc [4]
message:<MESSAGE-ID>

message://<MESSAGE-ID>

Supported by Mail since OS X 10.5
mid Referencing SMTP/MIME messages, or parts of messages. 1Permanent RFC 2111
RFC 2392
mid:<message-id>[/<content-id>] (See also cid:)
mms Windows streaming media 2Provisional IANA registration template
Microsoft
mms://<host>:<port>/<path> Used by Windows Media Player to stream audio and/or video.
modem 3Historical RFC 2806
RFC 3966
Deprecated in RFC 3966 in favour of tel:. Listed as "3Historical"
ms-help Displaying a help page on Microsoft Windows Help and Support Center. Used by Windows Vista and later. 2Provisional IANA registration template
Microsoft
ms-help://<section>/<path>/<file>.htm (Where <section> is a library of help files – the name of the library begins with "MS.", <path> is the sub-libraries, and <file> is the name of the file) Works only on Windows Vista and later.
ms-settings-power 2Provisional IANA registration template
msnim Adding a contact, or starting a conversation in Windows Live Messenger 2Provisional IANA registration template
Windows Live Messenger
Add a contact to the buddy list

msnim:add?contact=nada@example.com
Start a conversation with a contact
msnim:chat?contact=nada@example.com
Start a voice conversation with a contact
msnim:voice?contact=nada@example.com
Start a video conversation with a contact
msnim:video?contact=nada@example.com

Can be invoked from a web page or via a run command or an Internet Explorer browser URL (won't work with Firefox 2.0.0.8). For web pages use this HTML: <a href="chat?contact=nada@example.com">Click to chat!</a>
msrp
msrps
Message Session Relay Protocol 1Permanent RFC 4975
mtqp Message Tracking Query Protocol 1Permanent RFC 3887
mumble Joining a server. 2Provisional IANA registration template
Mumble
mumble://[username[:password]@]<address>[:port]/[channelpath]?version=<serverversion>[&title=<servername>][&url=<serverurl>] Official documentation from Mumble website
mupdate Mailbox Update Protocol 1Permanent RFC 3656
mvn Access Apache Maven repository artifacts 2Provisional IANA registration template
OPS4J
mvn:org.ops4j.pax.web.bundles/service/0.2.0-SNAPSHOT
mvn:http://user:password@repository.ops4j.org/maven2!org.ops4j.pax.web.bundles/service/0.2.0
news (Usenet) newsgroups and postings 1Permanent RFC 1738
RFC 5538
news:<newsgroupname> or
news:<message-id>
References a particular resource, regardless of location.
nfs Network File System resources 1Permanent RFC 2224 generic syntax
ni
nih
1Permanent RFC 6920
nntp Usenet NNTP 1Permanent RFC 1738
RFC 5538
nntp://<host>:<port>/<newsgroup-name>/<article-number> Referencing a specific host is often less useful than referencing the resource generically, as NNTP servers are not always publicly accessible
notes Open a Lotus Notes document or database 2Provisional IANA registration template
Lotus Notes
notes://<address> Used by IBM Lotus Notes to refer to documents and databases stored within the Lotus Notes system. When clicked in a browser on a computer with Lotus Notes client installed, Notes will open the document link as if a Notes DocLink were clicked within Notes.
oid 2Provisional IANA registration template IETF Draft
opaquelocktoken 1Permanent RFC 2518
RFC 4918
pack 3Historical IANA registration template IETF Draft
palm Used to designate system services in HP webOS applications 2Provisional IANA registration template
HP webOS
palm:<servicename>[/<method>]]/ Official documentation from HP webOS Services Overview
paparazzi Used to launch and automatically take a screen shot using the application "Paparazzi!" (Mac only) 2Provisional IANA registration template
Derailer
paparazzi:[<options>]http:[//<host>[:[<port>][<transport>]]/ Official documentation from the Paparazzi! website
pkcs11 PKCS #11 1Provisional IANA registration template
IETF Draft
platform Access to Eclipse platform resources. 2Provisional IANA registration template
Eclipse platform scheme documentation
platform:/(resource|plugin|fragment|meta|config|base)/... Registered with java.net.URL when launching with the org.eclipse.core.filesystem bundle, and heavily leveraged by org.eclipse.emf.common.util.URI.
pop Accessing mailbox through POP3 1Permanent RFC 2384 pop://[<user>[;AUTH=<auth>]@]<host>[:<port>]
pres Used in Common Profile for Presence (CPP) to identify presence 1Permanent RFC 3859 pres:<address>[?<header1>=<value1>[&<header2>=<value2>]] Similar to "mailto:"
prospero Prospero Directory Service 3Historical RFC 1738
RFC 4157
Listed as "3Historical" by IANA.
proxy Alter proxy settings in the FoxyProxy application 2Provisional IANA registration template
FoxyProxy
proxy:<option>=<value>[&<option>=<value>[&...]] Official documentation from FoxyProxy website
psyc Used to identify or locate a person, group, place or a service and specify its ability to communicate 2Provisional IANA registration template
PSYC
psyc:[//<host>[:[<port>][<transport>]]/[<object-name>][#<channel-name>] Official documentation from PSYC website
query Opens a filesystem query 2Provisional IANA registration template
Haiku
query:<queryformula> Implemented by the url_wrapper application
reload REsource LOcation And Discovery Protocol 1Permanent RFC 6940 reload://<destination>@<overlay>/[<specifier>]
res Used by Internet Explorer to display error pages when the server doesn't have its own customized error pages, or when there is no response from the server (in case which the server wasn't found, like when the server is down or the domain isn't registered or when there is no Internet connection, or in case of a timeout). 2Provisional IANA registration template
Microsoft
res://ieframe.dll/<File> (Where <File> is the file to load) Works only in Internet Explorer.
resource Creating mapping for resource protocol aliases generted by the resource instruction. Used by Firefox.[4] 2Provisional IANA registration template
Mozilla
resource://<aliasname>/ (Where <aliasname> is the name of the aliase) Works only in Firefox.
rmi Look up a Java object in an RMI registry. 2Provisional IANA registration template
Sun
rmi://<host>[:<port>]/<object-name> URI scheme understood by JNDI. Can be used to lookup a remote Java object within an RMI registry (typically for the purposes of RMI on that object). Host/port in the URI are of the rmiregistry process, not the remote object.
rsync rsync 2Provisional RFC 5781 rsync://<host>[:<port>]/<path>
rtmfp Real Time Media Flow Protocol 2Provisional IANA registration template
IETF Draft
rtmfp://<host>/<application>/<media>
rtmp Real Time Messaging Protocol 2Provisional IANA registration template
Adobe Systems
rtmp://<host>/<application>/<media> URI schema used to connect to Adobe Flash Media Server.
rtsp Real Time Streaming Protocol 1Permanent RFC 2326
secondlife Open the Map floater in Second Life application to teleport the resident to the location. 2Provisional IANA registration template
Linden Lab
secondlife://<region name>/<x position>/<y position>/<z position> Used by SLurl.com. Knowledge base article.
service 1Permanent RFC 2609
session Media Resource Control Protocol 1Permanent RFC 4463
RFC 6787
session:<content-id>

example:
session:help@root-level.store

sftp SFTP file transfers (not be to confused with FTPS (FTP/SSL)) 2Provisional IANA registration template
IETF Draft
sftp://[<user>[;fingerprint=<host-key fingerprint>]@]<host>[:<port>]/<path>/<file>
sgn Social Graph Node Mapper 2Provisional IANA registration template
Google
example:

sgn://social-network.example.com/?ident=bob

Official documentation from sgnodemapper project.
shttp Secure HTTP 1Permanent RFC 2660 Largely superseded by HTTPS.
sieve ManageSieve protocol 1Permanent RFC 5804
sip Used with Session Initiation Protocol (SIP) 1Permanent RFC 2543
RFC 3969
RFC 3261
sip:<user>[:<password>]@<host>[:<port>][;<uri-parameters>][?<headers>]

examples:
sip:alice@atlanta.com?subject=project%20x&priority=urgent
sip:+1-212-555-1212:1234@gateway.com;user=phone

sips Secure equivalent of sip 1Permanent RFC 3969
RFC 3261
sips:<user>[:<password>]@<host>[:<port>][;<uri-parameters>][?<headers>]
skype Launching Skype call (see also callto:) 2Provisional IANA registration template
Skype
skype:<username|phonenumber>[?[add|call|chat|sendfile|userinfo]]
smb Accessing SMB/CIFS shares 2Provisional IANA registration template
IETF Draft
smb://[<user>@]<host>[:<port>][/[<path>]][?<param1>=<value1>[;<param2>=<value2>]] or
smb://[<user>@]<workgroup>[:<port>][/] or

smb://[[<domain>;]<username>[:<password>]@]<server>[:<port>][/[<share>[/[<path>]]][?[<param>=<value>[<param2>=<value2>[...]]]]][5]
example:
smb://workgroup;user:password@server/share/folder/file.txt

sms Interact with SMS capable devices for composing and sending messages. 1Permanent RFC 5724 sms:<phone number>?<action>

examples:
sms:+15105550101?body=hello%20there
sms:+15105550101,+15105550102?body=hello%20there

Should be used as a subset to the tel: schema.[citation needed]
snews NNTP over SSL/TLS 3Historical RFC 5538
snmp Simple Network Management Protocol 1Permanent RFC 4088 snmp://[user@]host[:port][/[<context>[;<contextEngineID>]][/<oid>]]

examples:
snmp://example.com//1.3.6.1.2.1.1.3+
snmp://tester5@example.com:8161/bridge1;800002b804616263

soap.beep
soap.beeps
1Permanent RFC 3288
RFC 4227
soldat Joining servers 2Provisional IANA registration template
Soldat
soldat://<host>:<port>/[password]

example:
soldat://127.0.0.1:23073/thatssecret!

Official note in Manual
spotify Load a track, album, artist, search, or playlist in Spotify 2Provisional IANA registration template
Spotify
spotify:<artist|album|track>:<id> or
spotify:search:<text> or
spotify:user:<username>:playlist:<id>

example:
spotify:track:2jCnn1QPQ3E8ExtLe6INsx

Informally specified in Spotify official blog post by CTO Andreas Ehn.
ssh SSH connections (like telnet:) 2Provisional IANA registration template
IETF Draft
ssh://[<user>[;fingerprint=<host-key fingerprint>]@]<host>[:<port>]
steam Interact with Steam: install apps, purchase games, run games, etc. 2Provisional IANA registration template
Steam, Valve Corporation
steam:<command line arguments> or
steam://<action>/<id, addon, IP, hostname, etc.>
Official documentation from Valve Developer Community website
stun
stuns
Session Traversal Utilities for NAT (STUN) 1Permanent RFC 7064 stun[s]:<host>[:<port>]
svn Provides a link to a Subversion (SVN) source control repository 2Provisional IANA registration template
Subversion
svn[+ssh]://<logindetails>@<repository><:port>/<modulepath>
tag Tag URI 1Permanent RFC 4151 tag:<email/domainname>,<date>:<Item> Represented entities do not necessarily have to be accessible electronically.
teamspeak Joining a server. 2Provisional IANA registration template
TeamSpeak
teamspeak://<server>[:<port>]/[?<parameter1>=<value1>[&<parameter2>=<value2>]] Official documentation from TeamSpeak Website
tel Used for telephone numbers 1Permanent RFC 5341
RFC 3966
RFC 2806
tel:<phonenumber>
telnet Used with telnet 1Permanent RFC 1738
RFC 4248
telnet://<user>:<password>@<host>[:<port>/]
tftp Trivial File Transfer Protocol 1Permanent RFC 3617
things Send a to-do to Things. 2Provisional IANA registration template
Cultured Code
things:add?title=Buy%20milk&notes=Low%20fat&dueDate=2011-12-24 This URI scheme works on Mac OS X & iOS, providing Things by Cultured Code is installed.
thismessage multipart/related relative reference resolution 1Permanent IANA registration template RFC 2557
tn3270 Interactive 3270 emulation sessions 1Permanent RFC 6270
tip Transaction Internet Protocol 1Permanent RFC 2371
turn
turns
Traversal Using Relays around NAT (TURN) 1Permanent RFC 7065 turn[s]:<host>[:<port>][?transport=<transport>]
tv TV Broadcasts 1Permanent RFC 2838
udp BitTorrent tracker protocol based on UDP. 2Provisional IANA registration template
BitTorrent
udp://<server>[:<port>]/ Documentation: UDP tracker protocol
udp MPEG Transport Stream over UDP 2Provisional IANA registration template
MPEG-TS
udp://[<localaddress>@]<destination|multicastgroup>[:<port>] Supported by FFmpeg, VLC and other common video streaming applications and appliances. Each UDP packet typically contains 1 to 7 188 byte TS packets with no additional headers or footers.
unreal Joining servers 2Provisional IANA registration template
Unreal
unreal://<server>[:<port>]/ Unreal legacy "protocol"
urn Uniform Resource Names 1Permanent RFC 2141 urn:<namespace>:<specificpart> Commonly used with namespace 'uuid'. See URN Namespaces.
ut2004 Joining servers 2Provisional IANA registration template
Unreal Tournament 2004
ut2004://<server>[:<port>][/<map>?<options>] Documentation from Unreal Developer Network
vemmi Versatile Multimedia Interface 1Permanent RFC 2122
ventrilo Joining a server. 2Provisional IANA registration template
Ventrilo
ventrilo://<server>[:<port>]/[?<parameter1>=<value1>[&<parameter2>=<value2>]] Official documentation from Ventrilo Website
videotex 3Historical IANA registration template
IETF Draft
RFC 2122
RFC 3986
view-source Shows a web page as code 'in the raw'. 2Provisional IANA registration template

IETF Draft

view-source:<absolute-URI>

where <absolute-URI> is specified in RFC 3986. Example:
view-source:http://en.wikipedia.org/wiki/URI_scheme

See view-source URI scheme for details.
wais Used with Wide area information server (WAIS) 3Historical RFC 1738
RFC 4156
wais://<host>:<port>/<database>[?<search>] or wais://<host>:<port>/<database>/<wtype>/<wpath> Listed as "3Historical" by IANA.
webcal Subscribing to calendars in iCalendar format 2Provisional IANA registration template
iCalendar
webcal://<hierarchical part>

example:
webcal://example.com/calendar.ics

HTTP as a transport protocol is assumed.
See Webcal for details.
ws
wss
WebSocket protocol 1Permanent RFC 6455 ws:<hierarchical part>
wtai Wireless Telephony Application Interface 2Provisional IANA registration template
WAP Forum
wtai://wp/mc/+18165551212 See Application Protocol Wireless Application Environment Specification Version 1.1 for details.
wyciwyg What You Cache Is What You Get WYCIWYG 2Provisional IANA registration template
Mozilla
wyciwyg://<URI> See WYCIWYG for details.
xcon
xcon-userid
1Permanent RFC 6501
xfire Adding friends and servers, joining servers, changing status text. 2Provisional IANA registration template
Xfire
xfire:<function>[?<parameter1>=<value1>[&<parameter2>=<value2>]] Official documentation from Xfire website
xmlrpc.beep
xmlrpc.beeps
1Permanent RFC 3529
xmpp XMPP 1Permanent RFC 4622
RFC 5122
xmpp:[<user>]@<host>[:<port>]/[<resource>][?<query>]
xri eXtensible Resource Identifier (XRI) 2Provisional IANA registration template
OASIS XRI Technical Committee
xri://<authority>[/[<path>]][?<query>][#fragment] Official documentation from OASIS XRI Technical Committee
ymsgr Sending an instant message to a Yahoo! Contact. 2Provisional IANA registration template
Yahoo! Messenger
ymsgr:sendIM?<screenname>
z39.50 Z39.50 information access 3Historical RFC 1738
RFC 2056
z39.50r Z39.50 retrieval 1Permanent RFC 2056 z39.50r://<host>[:<port>]/<database>?<docid>[;esn=<elementset>][;rs=<recordsyntax>]
z39.50s Z39.50 session 1Permanent RFC 2056 z39.50s://<host>[:<port>]/[<database>][?<docid>][;esn=<elementset>][;rs=<recordsyntax>]

Unofficial but common URI schemes[edit]

Scheme Purpose Defined by General format Notes
doi Digital object identifier, a digital identifier for any object of intellectual property. IETF Draft doi:10.<publisher number>/<suffix>
Example: doi:10.1000/182
Used e.g. for most scientific publications.
Can be resolved via HTTP (transormed into an URL) by prepending http://dx.doi.org/ or http://hdl.handle.net/ in front.
javascript Execute JavaScript code IETF Draft javascript:<javascript to execute>
jdbc Connect a database with Java Database Connectivity technology. Database vendor dependent jdbc:somejdbcvendor:other_data...

jdbc:oracle:oci:@host:port(sid or [/service])?params...

jdbc:sqlserver://serverName\instanceName:portNumber;params...

jdbc:mysql://host:port/database?params...

Requires a vendor provided connector (jar archive) to be included in the client library.
stratum Connectivity URI for the Stratum protocol, used for proof-of-work coordination in pooled cryptocurrency mining. Stratum Protocol Draft stratum+tcp://server:port, stratum+udp://server:port This protocol has completely superseded the now-obsolete Getwork protocol,[6] and was created primarily to reduce network overhead as mining pool sizes inevitably scale upwards.[7]

References[edit]

  1. ^ RFC 1866 section 8.2.1 : by Tim Berners-Lee in 1995 encourages CGI authors to support ';' in addition to '&'.
  2. ^ HTML 4.01 Specification: Implementation, and Design Notes: "CGI implementors support the use of ";" in place of "&" to save authors the trouble of escaping "&" characters in this manner."
  3. ^ Hypertext Markup Language - 2.0 "CGI implementors are encouraged to support the use of ';' in place of '&' "
  4. ^ Taken from the following documentation page of Firefox's Developer: Chrome registration
  5. ^ JCIFS API: Class jcifs.smb.SmbFile
  6. ^ Stratum, Stratum Protocol
  7. ^ Stratum mining protocol, ..the official documentation of lightweight bitcoin mining protocol.

External links[edit]