Format d'une URL

  • Auteur de la discussion Auteur de la discussion dorian53
  • Date de début Date de début
WRInaute passionné
Bonjour,

Est-ce vraiment conforme aux recommandations de mettre des majuscules dans les URLs HTTP (à la Wikipedia par exemple) ?

Je ne parle même pas des accents qui sont clairement une dérive.

D'après la RFC 1738 http://www.ietf.org/rfc/rfc1738.txt - 2.1. The main parts of URLs, j'ai lu ça :
Scheme names consist of a sequence of characters. The lower case
letters "a"--"z", digits, and the characters plus ("+"), period
("."), and hyphen ("-") are allowed. For resiliency, programs
interpreting URLs should treat upper case letters as equivalent to
lower case in scheme names (e.g., allow "HTTP" as well as "http").

Est-ce la bonne RFC ?
Si oui The lower case letters "a"--"z" ne liste pas les majuscules.
Il n'y a même pas l'underscore ?

Merci
 
WRInaute passionné
C'est pas conforme mais les programmes (navigateur, robots) doivent être capable de les traiter, donc normalement pas gênant.

Edit: en fait je dis de la merde, un dossier /Admin (sur le serveur) n'est pas accessible par /admin, donc c'est bien interprété en majuscule... A vérifier (mais les majuscules dans l'URL c'est le mal quand même)
 
WRInaute passionné
Rod la Kox a dit:
On peu mettre des accents dans les ndd... qu'est-ce qui n'est pas conforme.

Tu mets ce que tu veux dans tes URL.

Non, les ndd avec accent sont simplement traités différement avec des x-nn--

Code:
 curl -vv http://www.infogérance.eu
* Input domain encoded as `ISO-8859-1'
* About to connect() to www.xn--infogrance-f7a.eu port 80 (#0)

Code:
whois infogérance.eu
Domain: infogérance
IDNA Domain:    xn--infogrance-f7a

edit: Et j'ai dit que je disais de la merde en disant que c'était pas conforme hein ;)
 
WRInaute accro
@dorian53: Tu n'as pas lu la bonne partie de la RFC. Ce que tu cites, c'est ce qui s'applique au "scheme", i.e. le premier mot au début de l'URL (avant le : ou ://) genre http, ftp, mailto, etc.

Pour le reste, tout ou presque est autorisé, voir la syntaxe détaillée à la fin. Le chemin peut être composé de a-z, A-Z, 0-9, $-_.+!*'(),;:@&=/ et les séquences %xx. Les seuls caractères qui ne sont pas autorisés tels quels sont donc:
- les caractères de contrôle (<=31), DEL (127) et les caractères >7 bits.
- l'espace (délimiteur dans la requête HTTP)
- "<> (probablement pour éviter les problèmes en HTML)
- # (délimiteur de fragment)
- ? (délimiteur de query string)
- % tout seul
- [\]^`{|}~ (je ne sais pas trop pourquoi, et je pense qu'ils sont en fait tolérés)

Tous ces caractères (y compris les caractères accentués, donc) peuvent évidemment être insérés sous forme de %xx. C'est d'ailleurs le cas des accents dans les URLs de Wikipedia (regarde le source), ce sont juste les browsers modernes qui décodent les %xx et les affichent décodés, l'URL dans le code HTML et dans les requêtes HTTP est bien sous forme %xx.

Jacques.
 
WRInaute passionné
jcaron a dit:
@dorian53: Tu n'as pas lu la bonne partie de la RFC. Ce que tu cites, c'est ce qui s'applique au "scheme", i.e. le premier mot au début de l'URL (avant le : ou ://) genre http, ftp, mailto, etc.
Ok merci Jacques. La bonne section était celle-ci.

RFC 1738 Uniform Resource Locators (URL) December 1994


alpha = lowalpha | hialpha
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" |
"8" | "9"
safe = "$" | "-" | "_" | "." | "+"
extra = "!" | "*" | "'" | "(" | ")" | ","
national = "{" | "}" | "|" | "\" | "^" | "~" | "[" | "]" | "`"
punctuation = "<" | ">" | "#" | "%" | <">


reserved = ";" | "/" | "?" | ":" | "@" | "&" | "="
hex = digit | "A" | "B" | "C" | "D" | "E" | "F" |
"a" | "b" | "c" | "d" | "e" | "f"
escape = "%" hex hex

unreserved = alpha | digit | safe | extra
uchar = unreserved | escape
xchar = unreserved | reserved | escape
digits = 1*digit

Je m'étonne que tous ces caractères soient autorisés, d'où ma question.
Pourquoi sont-ils si rares dans les URLs (accents, maj, etc.) ?
Par exemple, pourquoi les supprime-t-on souvent lors des rewrites ?
 
WRInaute accro
Julia41 a dit:
Rod la Kox a dit:
On peu mettre des accents dans les ndd... qu'est-ce qui n'est pas conforme.

Tu mets ce que tu veux dans tes URL.

Non, les ndd avec accent sont simplement traités différement avec des x-nn--

Gni ?
On s'en fout de comment s'est interprété. Tu peux tout mettre dans une URL.
 
WRInaute accro
dorian53 a dit:
Je m'étonne que tous ces caractères soient autorisés, d'où ma question.
Pourquoi sont-ils si rares dans les URLs (accents, maj, etc.) ?
Par exemple, pourquoi les supprime-t-on souvent lors des rewrites ?

Les majuscules ne sont pas si rares, et il n'y a pas d'intérêt particulier à les supprimer. Il ne faut pas oublier que sur une URL d'un fichier "normal" (fichier statique servi directement, sans recours à du rewriting ou un script), suivant l'OS du serveur, les majuscules vont être significatives (Unix) ou pas (Windows). Pour éviter les soucis on conseille de n'utiliser que des minuscules, mais rien n'empêche d'utiliser des majuscules.

Pour les accents, vu qu'ils sont encodés, et qu'il y a forcément un doute sur le charset utilisé (ISO-8859-1, UTF-8...), ce n'est pas forcément si évident que ça qu'ils soient compris "comme il faut" par tout le monde (i.e. si on part du principe que les mots de l'URL sont interprétés par les moteurs, ce que Google dément faire, mais ce que d'autres comme Bing semblent faire si j'ai bien tout suivi).

Ceci dit, si on prend l'exemple de Wikipedia, on voit que les URLs avec des accents sont au minimum décodées à l'affichage par Google, donc pas de problème de ce côté-là. Ca ne veut pas dire qu'il n'y a pas plein d'outils écrits un peu à la va-vite qui vont se vautrer lamentablement...

Jacques.
 
WRInaute accro
Rod la Kox a dit:
On s'en fout de comment s'est interprété. Tu peux tout mettre dans une URL.

Ben non. Comme indiqué plus haut, il n'y a qu'un nombre limité de caractères qui sont autorisés, le reste doit être encodé (de façon différente suivant le "morceau" de l'URL dont il s'agit: punycode pour les domaines, %xx pour le reste.

Pour le reste, un bon UA se chargera de convertir, mais si tu veux éviter les soucis, le mieux est que les URLs aient dès le départ le bon format.

Jacques.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Haut