nsIURI
est une interface pour un identifiant de ressource uniforme (URI) avec gestion de l'internationalisation.
Code de l'interface
[scriptable, uuid(07a22cc0-0ce5-11d3-9331-00104ba0fd40)] interface nsIURI : nsISupports { attribute AUTF8String spec; readonly attribute AUTF8String prePath; attribute ACString scheme; attribute AUTF8String userPass; attribute AUTF8String username; attribute AUTF8String password; attribute AUTF8String hostPort; attribute AUTF8String host; attribute long port; attribute AUTF8String path; boolean equals(in nsIURI other); boolean schemeIs(in string scheme); nsIURI clone(); AUTF8String resolve(in AUTF8String relativePath); readonly attribute ACString asciiSpec; readonly attribute ACString asciiHost; readonly attribute ACString originCharset; };
Les URI sont essentiellement des noms structurés pour des choses, quelles qu'elles soient. Cette interface fournit des accesseurs pour définir et interroger les composants les plus basiques d'une URI. Les sous-classes, comme nsIURL, imposent une plus grande structure à l'URI. Cette interface suit la spécification de Tim Berners-Lee dans la RFC 2396, où les composants de base d'une URI sont définis comme suit :
ftp://user:[email protected]:12345/path/leaf
Composant | Valeur dans l'exemple |
---|---|
scheme |
ftp |
userPass |
user:password |
host |
example.org |
port |
12345 |
path |
/path/leaf |
prePath |
ftp://user:[email protected]:12345 |
Méthodes
equals()
boolean equals (in nsIURI other);
Test d'équivalence d'URI (pas une comparaison stricte). Par exemple, https://example.com:80/ == https://example.com/
schemeIs()
boolean schemeIs(in string scheme);
Une optimisation pour effectuer certaines vérifications sur le schéma sans que les utilisateurs de nsIURI aient à utiliser GetScheme, économisant ainsi des allocations et libérations supplémentaires. Renvoie true
si le schéma correspond, en ignorant la casse).
clone()
nsIURI clone();
Clone l'URI courante. Pour certains protocoles il ne s'agit pas que d'une simple optimisation. Par exemple, sous Mac OS, la spécification d'une URL de fichier n'identifie pas nécessairement un fichier unique car deux volumes pourraient partager le même nom.
resolve()
AUTF8String resolve(in AUTF8String relativePath);
Cette méthode résoud une chaîne relative en une chaîne URI absolue, en utilisant cette URI comme base. NOTE : certaines implémentations peuvent ne pas avoir de notion d'URI relative.
Attributs
Attribut | Type | Description |
spec |
nsACString (UTF-8) |
Renvoie une représentation chaîne de l'URI. En définissant cet attribut, celui-ci sera analysé et l'URI sera initialisée. |
prePath |
readonly nsACString (UTF-8) |
L'attribut prePath (par exemple scheme://user:password@host:port) renvoie la chaîne qui précède le chemin. Cela peut servir pour l'authentification ou la gestion de sessions.
Certains caractères peuvent être échappés. |
scheme |
nsACString (US-ASCII) |
Le protocole auquel cette URI fait référence. Il est limité au sous-ensemble US-ASCII selon la RFC2396. |
userPass |
nsACString (UTF-8) |
La partie username:password (ou uniquement username si la valeur ne contient pas de « : »)
Certains caractères peuvent être échappés. |
username |
nsACString (UTF-8) |
Le nom d'utilisateur éventuel, en supposant que preHost consiste en username:password.
Certains caractères peuvent être échappés. |
password |
nsACString (UTF-8) |
Le mot de passe éventuel, en supposant que preHost consiste en username:password.
Certains caractères peuvent être échappés. |
hostPort |
nsACString (UTF-8) |
La valeur host:port (ou simplement l'hôte, si port == -1).
Les caractères ne sont PAS échappés. |
host |
nsACString (UTF-8) |
L'hôte est le nom de domaine Internet auquel cette URI fait référence. Il peut s'agir d'une adresse littérale IPv4 (ou IPv6). Si géré, il peut s'agir d'un nom de domaine internationalisé non-ASCII.
Les caractères ne sont PAS échappés. |
port |
PRInt32 |
Une valeur de port de -1 correspond au port par défaut du protocole (par exemple, -1 indique le port 80 pour les URI HTTP). |
path |
nsACString (UTF-8) |
Le chemin, typiquement avec au moins un « / » initial (mais peut également être vide, selon le protocole).
Certains caractères peuvent être échappés. |
asciiSpec |
readonly nsACString (US-ASCII) |
L'attribut spec mais avec un encodage compatible ASCII. La portion d'hôte suit la spécification brouillon IDNA. D'autres parties utilisent l'échappement d'URL selon les règles de la RFC2396. Le résultat est strictement de l'ASCII. |
asciiHost |
readonly nsACString (US-ASCII) |
L'hôte de l'URI mais avec un encodage compatible ASCII. Suit la spécification brouillon IDNA pour la conversion de noms de domaines internationalisés (UTF-8) en ASCII pour la compatibilité avec les infrastructures Internet existantes. |
originCharset |
readonly nsACString |
Le jeu de caractères du document dont cette URI est originaire. Une valeur vide indique l'UTF-8.
Si cette valeur est différente d'UTF-8, les composants de l'URI (comme spec, prePath, username, etc.) seront tous échappés comme une URL. Autrement, les composants de l'URI peuvent contenir des caractères multioctets UTF-8 non échappés |