Schéma d'URI

Restez toujours informé : suivez-nous sur Google (☆)

Introduction

En informatique, un schéma d'URI est le premier niveau de la structure de nommage des identifiants uniformes de ressources (URI). Toutes les URIs sont construites à partir d'un nom de schéma, suivi de deux points (":") puis du reste de l'URI, spécifique au schéma. La syntaxe et la sémantique de la partie spécifique sont, en grande partie, laissées aux spécifications des différents schémas.

La plupart des schémas ayant été conçus à l'origine pour être utilisé avec un protocole, ils sont souvent appelés de manière incorrecte des « protocoles » ou des « protocoles d'URI ». Par exemple, le schéma HTTP est en général utilisé pour désigner des ressources Web utilisant le protocole HTTP. Maintenant, des URIs de ce schéma sont utilisées pour d'autres applications, comme les ressources RDF ou les espaces de nom XML, qui n'ont pas de rapport avec le protocole. De plus, certains schémas ne sont associés à aucun protocole particulier (comme le schéma file) et d'autres n'utilisent pas le nom d'un protocole comme préfixe (comme le schéma news).

Les schémas d'URI sont sensés être enregistrés auprès de l'IANA, mais des schémas non enregistrés sont utilisés en pratique. La RFC 4935 décrit la procédure d'enregistrement d'un nouveau schéma d'URI.

Syntaxe générique

Le standard Internet STD 66 (voir aussi la RFC 3986) définit la syntaxe commune utilisée par tous les schémas d'URI. Chaque URI est constituée de quatre parties :

<nom du schéma> : <partie hiérarchique> [ ? <[requête](/fr/definitions/requete)[type=embedded-definition]> ] [ # <fragment> ]

Le nom du schéma est une lettre suivie de n'importe quelle combinaison de lettres, de chiffres, du signe plus (+), du point (.) ou d'un tiret (-) et se termine par deux points (:).

La partie hiérarchique de l'URI est prévue pour contenir les informations d'identification de la ressource, hiérarchique par nature. En général, cette partie commence par un double slash, suivi par le domaine puis un chemin optionnel.

  • Le domaine est principalement constitué du nom d'hôte ou de l'adresse IP, cette information peut être encadrée par deux autres champs optionnels : avant, les informations concernant l'utilisateur délimitées par un @ ; après, un numéro de port, précédé par deux points (:).

  • Le chemin est une séquence de segments (similaires à des répertoires), séparés par des slash (/). Chaque segment peut contenir des paramètres séparés par des points virgules (;), bien que cela soit rarement utilisé.

La requête est une partie optionnelle séparée par un point d'interrogation qui contient des informations complémentaires qui ne sont pas de nature hiérarchique. Le format de la requête n'est pas défini de manière générale, mais est souvent formée d'une suite de paires <[clef](/fr/definitions/clef)[type=embedded-definition]>=<valeur> séparées par des points virgules ou par des esperluettes.

Le fragment est une partie optionnelle séparée par un dièse. Il fournit des informations supplémentaires permettant d'accéder à une ressource secondaire. Lorsque la ressource est un document HTML, le fragment est souvent l'id d'un élément et le navigateur fera le nécessaire pour que cet élément soit visible.

Exemples

Voici deux exemples d'URI ainsi que leurs différents composants :

foo://username::8042/over/there/index.dtb?type=animal;name=ferret#nose \ / \________________/\_________/ \__/ \___/ \_/ \_____________________/ \__/ | | | | | | | | | utilisateur hôte port | | requête fragment | \_______________________________/ \_____________|____|/ schéma | | | | | domaine |chem|n | | | | chemin peut être interprété comme un nom de fichier | ___________|____________ | / \ / \ | urn:example:animal:ferrett:nose peut être interprété comme une extension

Schémas enregistrés auprès de l'IANA

SchémaButDéfini parFormatNotes
aaaprotocole DiameterRFC 3588aaa://<host>[:<port>][;transport=<transport>][;protocol=<protocol>]

example:

aaa://host.example.[com](/fr/definitions/com)[type=embedded-definition]:1813;transport=udp;protocol=radius
aaasÉquivalent sécurisé de aaaRFC 3588aaas://<host>[:<port>][;transport=<transport>][;protocol=<protocol>]
acapApplication Configuration Access ProtocolRFC 2244acap://[<user>[;AUTH=<type>]@]<host>[:<port>]/<entry>Schéma d'URL utilisé dans le protocole ACAP pour l'attribut "subdataset", les références et l'héritage.
capCalendar access protocolRFC 4324generic syntaxSchéma utilisé à la fois pour adresser les dépôts de calendriers et les calendriers accessible via CAP.
cidIdentifie les différentes parties d'un message SMTP/MIME.RFC 2392cid:<content-id>
cridTV-Anytime Content Reference IdentifierRFC 4078crid://<host>/<data>Permet de référencer les contenus prévus à la diffusion.
dataInclusion de petites quantités de données dans l'URI elle mêmeRFC 2397data:<mediatype>[;base64],<data>
davHTTP Extensions for Distributed Authoring (WebDAV)RFC 2518dav:Utilisé pour les identifiants internes uniquement.
dictDictionary service protocolRFC 2229dict://<user>;<auth>@<host>:<port>/d:<word>:<database>:<n>

dict://<user>;<auth>@<host>:<port>/m:<word>:<database>:<strat>:<n>
dnsDomain Name SystemRFC 4501dns:[//<host>[:<port>]/]<dnsname>[?<dnsquery>]

examples:

dns:example?TYPE=A;CLASS=IN

dns://192.168.1.1/ftp.example.org?type=A
faxUtilisé pour les numéros de fax.RFC 2806fax:<phonenumber>
fileRéférence les fichiers sur un système de fichier local ou sur le réseau.RFC 1738

RFC 3986
file://[host]/path or

(RFC 3986) file:[//host]/path
ftpRessources FTPRFC 1738syntaxe générique
goCommon Name Resolution ProtocolRFC 3368go://[<host>]?[<common-name>]*[;<attribute>=[<type>,]<value>] or

go:<common-name>*[;<attribute>=[<type>,]<value>]
gopherUtilisé par le protocole GopherRFC 4266gopher://<host>:<port>/<item type>/<path>
h323H.323RFC 3508h323:[<user>@]<host>[:<port>][;<parameters>]
httpRessources HTTPRFC 2616syntaxe générique
httpsConnections http sécurisées.RFC 2817syntaxe générique
icapInternet Content Adaptation ProtocolRFC 3507
imInstant messaging protocolRFC 3860 RFC 4622im:<username>[@<host>]
imapPermet d'accéder aux emails via IMAPRFC 2192imap://[<user>[;AUTH=<type>]@]<host>[:<port>]/<command>
infoInformation Assets with Identifiers in Public NamespacesRFC 4452
ippInternet Printing ProtocolRFC 3510
iris

iris.beep

iris.xpc

iris.xpcs

iris.lws
Internet Registry Information ServiceRFC 3981 RFC 3983 RFC 4992 RFC 4992 RFC 4993
ldapRequête LDAPRFC 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)
lsidLSIDdtc/04-10-08URN:LSID:<Authority>:<Namespace>:<ObjectID>[:<Version>]

example:

urn:lsid:ubio.org:namebank:11815
mailtoSMTP e-mail addresses and default contentRFC 2368mailto:<address>[?<header1>=<value1>[&<header2>=<value2>]]

example:

mailto:[j****[email protected]](obf:QbvNmLlxGctFGelBEaqpDdp12c)?subject=A%20Test&body=My%20idea%20is%3A%20%0A
midRéférence les messages ou des parties de messages SMTP/MIME.RFC 2392mid:<message-id>[/<content-id>](See also cid:)
modemmodemRFC 3966
msrp

msrps
Message Session Relay ProtocolRFC 4975
mtqpMessage Tracking Query ProtocolRFC 3887
mupdateMailbox Update ProtocolRFC 3656
newsUsenetRFC 1738news:<newsgroupname> or

news:<message-id>
nfsRessources Network File SystemRFC 2224syntaxe générique
nntpUsenet NNTPRFC 1738nntp://<host>:<port>/<newsgroup-name>/<article-number>
opaquelocktokenopaquelocktokenRFC 4918
popPermet d'accéder à une boite mail via POP3RFC 2384pop://[<user>[;AUTH=<auth>]@]<host>[:<port>]
presUtilisé dans CPP pour identifier une présence.RFC 3859pres:<address>[?<header1>=<value1>[&<header2>=<value2>]]
prosperoProspero Directory ServiceRFC 4157
rtspReal Time Streaming ProtocolRFC 2326
serviceRFC 2609
shttpHTTP sécuriséRFC 2660Largement remplacé parHTTPS.
sipUtilisé par SIPRFC 3969

RFC 3261
sip:<user>[:<password>]@<host>[:<port>][;<uri-parameters>][?<headers>]

examples:

sip:[a***[email protected]](obf:t92YuEGduFGb0FGQlFmOjlGb)?subject=project%20x&priority=urgent

sip:+1-212-555-1212 :[1**[email protected]](obf:02bj5SehdXZ0F2ZARTM6MjM);user=phone
sipsVersion sécurisé de sipRFC 3969

RFC 3261
sips:<user>[:<password>]@<host>[:<port>][;<uri-parameters>][?<headers>]
snmpSimple Network Management ProtocolRFC 4088snmp://[user@]host[:port][/[<context>[;<contextEngineID>]][/<oid>]]

examples:

snmp://example.com//1.3.6.1.2.1.1.3+

snmp://[t*****[email protected]](obf:02bj5SZsBXbhhXZAVDd6IXZ0NXZ):8161/bridge1;800002b804616263
soap.beep

soap.beeps
RFC 3288
tagTag URIRFC 4151tag:<email/domainname>,<date>:<Item>
telUtilisé pour les numéros de téléphoneRFC 3966

RFC 2806
tel:<phonenumber>
telnetUtilisé par telnetRFC 4248telnet://<user>:<password>@<host>[:<port>/]
tftpTrivial File Transfer ProtocolRFC 3617
thismessageRésolution de référence relative multipart/relatedRFC 2557
tipTransaction Internet ProtocolRFC 2371
tvDiffusion TVRFC 2838
urnNoms uniformes de ressourcesRFC 2141urn:<namespace>:<specificpart>
vemmiVersatile Multimedia InterfaceRFC 2122
waisUtilisé par WAISRFC 4156wais://<host>:<port>/<database>[?<search>] or wais://<host>:<port>/<database>/<wtype>/<wpath>
xmlrpc.beep

xmlrpc.beep
RFC 3529
xmppXMPPRFC 5122xmpp:<user>@<host>[:<port>]/[<resource>][?<query>]
z39.50rZ39.50RFC 2056z39.50r://<host>[:<port>]/<database>?<docid>[;esn=<elementset>][;rs=<recordsyntax>]
z39.50sSession Z39.50RFC 2056z39.50s://<host>[:<port>]/[<database>][?<docid>][;esn=<elementset>][;rs=<recordsyntax>]

Schémas d'URI non-officiels couramment utilisés

SchémaButDéfini parFormatNotes
aboutAffiche des informations concernant le produitIETF DraftUtilisé par les navigateurs webs, parfois aussi pour fournir des options interactives. Le navigateur Opera utilise opera:.
adiumxtraInstallation directe de plugins Adium.The Adium Teamadiumxtra://www.adiumxtras.com/download/00000000 identifie un plugin spécifique.
aimPermet de contrôler AOL Instant Messenger.AOLaim:<function>?<parameters>Les fonctions comprennent goim, addbuddy et buddyicon.
aptMéthode expérimentale pour installer des logiciels via APT.apt:<package name>Utilisé sur les sites hébérgeant des dépôts logiciels pour Debian.
afpPermet d'accéder aux partages Apple Filing Protocol sharesIETF Draftvia TCP/IP: afp://[<user>@]<host>[:<port>][/[<path>]]

via AppleTalk: afp:/at/[<user>@]<host>[:<zone>][/]
awLiens vers un monde Active WorldsActiveworlds Inc.aw://<worldserver host>:<worldserver port>/<worldname>Se trouve généralement comme referer lorsqu'un utilisateur ouvre un site depuis un monde Active Worlds.
boloRejoindre une partie de Bolobolo://<hostname>/Généralement transmise par IRC ou par des serveurs de jeux.
calltoDémarre une communication Skypecallto:<screenname> ou

callto:<phonenumber> [1]
Initialement apparu dans par NetMeeting. Fonctionne avec les versions actuelles de Skype avec Firefox, Internet Explorer et Safari
chromeUtilisé par les interfaces construites avec XUL.Mozillachrome://<package>/<section>/<path> (Ou peut être "content", "skin" ou "locale")Fonctionne seulement dans les navigateurs basé sur Mozilla, tels que Firefox, SeaMonkey et Netscape.
contentAccède à un fournisseur de contenu Android.Open Handset Alliancecontent://provider/<path>Effectue une requête sur un fournisseur de contenu Android.
cvsLien vers un dépôt CVS.Concurrent Versions Systemcvs://<method:logindetails>@<repository>/<modulepath>;[date=date to retrieve \| tag=tag to retrieve]
doiDigital object identifier, a digital identifier for any object of intellectual property.The International DOI Foundationdoi:10.<publisher number>/<suffix> Example: [doi:10.1000/182](http://dx.doi.org/doi:10.1000/182)Used e.g. for most scientific publications.

Can be resolved via HTTP (transormed into an URL) by appending [http://dx.doi.org/](http://dx.doi.org/) or [http://hdl.handle.net/](http://hdl.handle.net/) in front.
ed2kResources available using the eDonkey2000 networkeDonkey2000ed2k://\|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 Modèle:Wayback
feedweb feed subscriptionfeed:<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.
fingerQuerying user information using the Finger protocolIETF Draftfinger://host[:port][/<request>]
fishAccessing another computer's files using the SSH protocolfish KDE kioslavefish://[<username>[:<password>]@]<hostname>[:<port>]See Files transferred over shell protocol for details about the protocol.
ggStarting chat with Gadu-Gadu userGadu-Gadugg:<userid>
gizmoprojectGizmo5 calling link.gizmoproject://call?id=<gizmo_id>May use sip:// instead of gizmoproject:// in recent versions of Gizmo5.
gtalkStart a chat with a Google Talk userGoogle Talkgtalk:chat?jid=[e*****[email protected]](obf:t92YuwWah12ZAVWZ6wGctFGe)See Google Talk, XMPP, and https://juberti.blogspot.com/2006/11/gtalk-uri.html for more information
iax2Inter-Asterisk eXchange protocol version 2IETF Draftiax2:[<username>@]<host>[:<port>][/<number>[?<context>]]

examples:

iax2:[2001:db8::1]:4569/alice?friends

iax2:[j***[email protected]](obf:t92YuUGbw1WY4VGQRpmOuh2b)/12022561414
ircConnecting to an Internet Relay Chat server to join a channel.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.
ircsSecure equivalent of ircIETF Draftircs://<host>[:<port>]/[<channel>[?<password>]]See irc
irc6IPv6 equivalent of ircirc6://<host>[:<port>]/[<channel>[?<password>]]See irc
itmsUsed for connecting to the iTunes Music StoreApple Incitms:
jarCompressed archive memberJava APIjar:<url>!/[<entry>]Works for any ZIP based file.
javascriptExecute JavaScript codeIETF Draftjavascript:<javascript to execute>Works in any modern browser.
keyparcKeyparc encrypt/decrypt resource.Bloombasekeyparc://encrypt/<username>/<uri> or

keyparc://decrypt/<username>/<uri>
lastfmConnecting to a radio stream from Last.fm.Last.fmlastfm://<radio_stream> or lastfm://globaltags/<genre> or

lastfm://user/<username>/<stuff>
ldapsSecure equivalent of ldapldaps://[<host>[:<port>]][/<dn> [?[<attributes>][?[<scope>][?[<filter>][?<extensions>]]]]]Not an IETF standard, but commonly used in applications.
magnet"magnet links"Magnet-URI Projectmagnet:?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.
maps"map links"maps:q=<physical location>Some mobile web browsers will launch a dedicated mapping application.
mmsWindows streaming mediamms://<host>:<port>/<path>Used by Windows Media Player to stream audio and/or video.
msnimAdding a contact, or starting a conversation in Windows Live MessengerWindows Live MessengerAdd a contact to the buddy list

msnim:add?contact=[n**[email protected]](obf:02bj5SZyVGa39mbAFmb6QWY)

Start a conversation with a contact

msnim:chat?contact=[n**[email protected]](obf:02bj5SZyVGa39mbAFmb6QWY)

Start a voice conversation with a contact

msnim:voice?contact=[n**[email protected]](obf:02bj5SZyVGa39mbAFmb6QWY)

Start a video conversation with a contact

msnim:video?contact=[n**[email protected]](obf:02bj5SZyVGa39mbAFmb6QWY)
Can be invoked from a web page or via a run command or an ie browser URL (won't work with firefox 2.0.0.8). For web pages use this HTML: <a href="chat?contact=[n**[email protected]](obf:02bj5SZyVGa39mbAFmb6QWY)">Click to chat!</a>
mvnAccess Apache Maven repository artifactsOPS4Jmvn:org.ops4j.pax.web.bundles/service/0.2.0-SNAPSHOT

mvn:http://user:[p******[email protected]](obf:nJ3buoGNzB3bukncvRXaz9GclJHQkBnOy92dzNXY)/maven2!org.ops4j.pax.web.bundles/service/0.2.0
notesOpen a Lotus Notes document or databaseLotus Notesnotes://<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.
psycUsed to identify or locate a person, group, place or a service and specify its ability to communicatePSYCpsyc:[//<host>[:[<port>][<transport>]]/[<object-name>][#<channel-name>]-
paparazzi:httpUsed to launch and automatically take a screen shot using the application "Paparazzi" (Mac only)Derailerpaparazzi:http:[//<host>[:[<port>][<transport>]]/Official documentation from Paparazzi website
rmiLook up a Java object in an RMI registry.Sunrmi://<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.
rsyncrsyncrsync://<host>[:<port>]/<path>
secondlifeOpen the Map floater in Second Life application to teleport the resident to the location.Linden Labsecondlife://<region name>/<x position>/<y position>/<z position>Used by SLurl.com. Knowledge base article.
sgnSocial Graph Node MapperGoogleexample:

sgn://social-network.example.com/?ident=bob
Official documentation from sgnodemapper project.
skypeLaunching Skype call (official; see also callto:)Skypeskype:<username\|phonenumber>[?[add\|call\|chat\|sendfile\|userinfo]]Official documentation from Skype website.
sshSSH connections (like telnet:) andIETF Draftssh://[<user>[;fingerprint=<host-key fingerprint>]@]<host>[:<port>]
sftpSFTP file transfers (not be to confused with FTPS (FTP/SSL))IETF Draftsftp://[<user>[;fingerprint=<host-key fingerprint>]@]<host>[:<port>]/<path>/<file>
smbAccessing SMB/CIFS sharesIETF Draftsmb://[<user>@]<host>[:<port>][/[<path>]][?<param1>=<value1>[;<param2>=<value2>]] or

smb://[<user>@]<workgroup>[:<port>][/]
smsInteract with SMS capable devices for composing and sending messages.IETF draftsms:<phone number>?<action>Should be used as a subset to the tel: schema.
soldatJoining serversSoldatsoldat://<host>:<port>/[password]

example:

soldat://127.0.0.1:23073/thatssecret!
Official note in Manual
steamInteract with Steam: install apps, purchase games, run games, etc.Steam, Valve Corporationsteam:<command line arguments> or

steam://<action>/<id, addon, IP, hostname, etc.>
Official documentation from Valve Developer Community website
svnProvides a link to a Subversion (SVN) source control repositorySubversion (software)svn[+ssh]://<logindetails>@<repository><:port>/<modulepath>
teamspeakJoining a server.TeamSpeakteamspeak://<server>[:<port>]/[?<parameter1>=<value1>[&<parameter2>=<value2>]]Official documentation from TeamSpeak Website
unrealJoining serversUnrealunreal://<server>[:<port>]/Unreal legacy "protocol"
ut2004Joining serversUnreal Tournament 2004ut2004://<server>[:<port>][/<map>?<options>]Documentation from Unreal Developer Network
ventriloJoining a server.Ventriloventrilo://<server>[:<port>]/[?<parameter1>=<value1>[&<parameter2>=<value2>]]Official documentation from Ventrilo Website
view-sourceShows a web page as code 'in the raw'.Mozilla, Google Chromeview-source:<URI>

example:

view-source:http://en.wikipedia.org/wiki/URI_scheme
See view-source for details.
webcalSubscribing to calendars in iCalendar formatiCalendarwebcal://<hierarchical part>

example:

webcal://example.com/calendar.ics
HTTP as a transport protocol is assumed.

See Webcal for details.
wtaiWireless Telephony Application InterfaceWAP Forumwtai://wp/mc/+18165551212See Application Protocol Wireless Application Environment Specification Version 1.1 for details.
wyciwygWhat You Cache Is What You Get WYCIWYGMozillawyciwyg://<URI>See WYCIWYG for details.
xfireAdding friends and servers, joining servers, changing status text.Xfirexfire:<function>[?<parameter1>=<value1>[&<parameter2>=<value2>]]Official documentation from Xfire website
xrieXtensible Resource Identifier (XRI)OASIS XRI Technical Committeexri://<authority>[/[<path>]][?<query>][#fragment]Official documentation from OASIS XRI Technical Committee
ymsgrSending an instant message to a Yahoo! Contact.Yahoo! Messengerymsgr:sendIM?<screenname>