mon commentaire à https://core.trac.wordpress.org/ticket/35248#comment:9 :
ma réponse au texte par le premier lien ( https://web.archive.org/web/20160604095348/http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/web-fully-qualified-domain-name.html ):
À l'origine, comme défini dans la RFC 1738 (§ 3.1), la partie "hôte" d'une URL (Common Internet Scheme) était toujours et sans équivoque un nom de domaine pleinement qualifié et le mécanisme conventionnel pour distinguer les noms de domaine pleinement qualifiés des noms de domaine non entièrement les noms de domaine qualifiés ne s'appliquent pas. Que ce soit example.com. ou example.com, l'hôte était censé être le même.
- je pense qu'il n'a pas raison, je pense que "example.com" n'était pas autorisé du tout dans les URL selon rfc 1738, il est cité dans le deuxième texte, et je le cite:
3.1. Syntaxe du schéma Internet commun
// <utilisateur>: <mot de passe> @ <hôte>: <port> / <url-path>
hôte
Le nom de domaine complet d'un hôte réseau
et "example.com" ne pouvait pas être utilisé dans les en-têtes http à ce moment-là, car rfc 1738 est de 1994 et le champ hôte n'est apparu qu'avec http 1.1 en 1997 (vous pouvez vérifier dans wikipedia).
donc, en effet, seul fqdn était autorisé dans les URL. je pense que c'était une erreur dans rfc 1738, car de cette façon, cela rendait (essayait de faire) la fonction "domaines relatifs" inutile. s'il ne le refusait pas, ils pourraient théoriquement être utilisés dans des hrefs de balises "a" dans des sites scriptés locaux ou dans de la documentation html statique au sein de grandes entreprises qui utilisaient des domaines relatifs, si les navigateurs et les serveurs le supportaient. mais même si rfc 1738 les a interdits, les gens n'y ont pas obéi: ils ont continué à utiliser des domaines de premier niveau sous une forme relative, c'est-à-dire sans point de fuite, donc ce refus par rfc 1738 n'était pas un gros problème pratique de toute façon, et les gens avaient et utilisé une alternative aux domaines relatifs: ils ont juste créé des domaines locaux de premier niveau comme "localhost" (et les ont également utilisés et utilisés sans point de fuite).
puis il dit:
Malheureusement, dans la pratique, les navigateurs Web ont toujours violé cette spécification et transmis la partie «hôte» aux procédures de qualification de nom de leurs bibliothèques client DNS lors du mappage du nom d'hôte à un ensemble d'adresses IP. (Par exemple, ceux qui ont utilisé la bibliothèque client BIND DNS quitteraient le jeu d'options RES_DNSRCH et n'ajouteraient pas le dernier point de fin s'il était manquant.)
- Je pense qu'il voulait dire que les hôtes sans point de fuite devraient être simplement supprimés comme erreur, et seuls les domaines absolus (fqdn) devraient être passés au DNS. Je pense que les navigateurs ont probablement transmis tous les domaines au DNS parce que les gens utilisaient leurs domaines locaux de premier niveau personnalisés comme "localhost". et de toute façon, plus tard dans rfc 2396 publié en 1998, l'utilisation de domaines de premier niveau dans les URL sans points de fin a été autorisée.
puis l'auteur (Jonathan de Boyne Pollard) cite le rfc 2396 et regrette qu'il ait changé selon le comportement humain établi, c'est-à-dire les normes de facto, dit qu'il serait préférable que les navigateurs obéissent au rfc 1738, et recommande à tous de n'utiliser que le fqdn, dans tous les endroits, comme il était commandé par rfc 1738.
- mais que se passerait-il si les gens obéissaient au rfc 1738? des URL comme "http://example.com/test.html "et"http: //localhost/test.html "tout devait être réécrit en"http://example.com./test.html "et"http://localhost./test.html". Le navigateur devrait soit marquer les hôtes sans points comme des erreurs, soit les rediriger en cliquant dessus vers leur forme complète / absolue. Toutes les personnes qui ont configuré des domaines locaux de premier niveau comme" localhost "devraient configurer leurs serveurs pour accepter uniquement les demandes pour des domaines comme "localhost.", ou accepter et rediriger [toutes les URL à l'intérieur] "localhost" vers [les URL correspondantes dans] "localhost.". Un texte comme "localhost" ne restera utile que lorsque vous le taperez dans la barre d'adresse du navigateur, mais cela ne serait qu'une utilisation très inutile, et la fonction de domaine relatif n'est pas nécessaire pour cela, car les navigateurs recherchent des domaines lors de la frappe. leur utilisation dans la source html deviendrait inutile car cela conduirait à ce que ces liens ne fonctionnent pas, ou en cliquant sur tous les liens avec "localhost" déplaceraient l'utilisateur vers "localhost."et ce serait juste une redirection supplémentaire à chaque clic (sur de tels liens). Par conséquent, rfc 1738 rendrait la fonctionnalité de" domaine relatif "prévue totalement inutile. Si une entreprise utilisait cette fonctionnalité et utilisait leurs domaines relatifs dans leurs sites locaux, et leurs URL avec des domaines relatifs n'étaient pas redirigées vers la forme absolue par les navigateurs, donc leurs sites fonctionnaient normalement, s'ils obéissaient également au rfc 1736, ils configureraient leurs serveurs pour n'accepter que fqdn, et ils devraient soit réécrire toutes ces URL avec fqdn, ou travaillez avec une redirection supplémentaire à chaque clic sur de telles URL. Si ces entreprises aimaient avoir un domaine court comme "team101" au lieu de "team101.microsoft.com." dans leurs barres d'adresse et leurs sources html, elles devraient commencer à utiliser leurs domaines de premier niveau internes personnalisés tels que "team101", c'est-à-dire comme "localhost. "au lieu de sous-domaines comme" team101.microsoft.com. "(qui pourrait être utilisé comme" team101 "avant de décider d'obéir au rfc 1738).
-
et j'ai découvert que le point de fuite, qui était si fortement soutenu par rfc 1738, n'est vraiment apparu qu'après le standart sans points de fuite! il est apparu avec rfc 1034 en 1987, il est cité dans le deuxième lien, et je le cite:
Puisqu'un nom de domaine complet se termine par l'étiquette racine, cela conduit à un
forme imprimée qui se termine par un point. Nous utilisons cette propriété pour distinguer:
- une chaîne de caractères qui représente un nom de domaine complet
(souvent appelé "absolu"). Par exemple, "poneria.ISI.EDU".
- une chaîne de caractères qui représente les étiquettes de départ d'un
nom de domaine incomplet qui doit être complété par
logiciel local utilisant la connaissance du domaine local (souvent
appelé "relatif"). Par exemple, la "poneria" utilisée dans le
Domaine ISI.EDU.
rfc 1034 (de 1987) vient de déclarer tous les domaines qui ont été utilisés, semble-t-il qu'ils étaient tous sans points de fin, les a tous déclarés devenir des domaines relatifs! mais ils fonctionnaient toujours comme auparavant, donc probablement peu de gens le savaient et continuaient de penser qu'ils demandaient sans ambiguïté un véritable site "example.com" unique lorsqu'ils utilisent "example.com" sans point de fuite. ce qui est devenu une faille de sécurité supplémentaire dans certains cas: le célèbre exemple.com réel pourrait être usurpé par un administrateur de sous-domaine même s'il n'avait pas le droit de créer un domaine local comme "localhost". donc, le rfc 1034 n'a pas non plus été très bien conçu: il semble que ses auteurs ne s'attendaient pas à ce qu'il soit {peu connu, créant ainsi une faille de sécurité}!
probablement rfc 1738 (1994) a finalement essayé de transmettre l'idée de distinction entre domaines absolus et relatifs à un large public et également de corriger cette violation de sécurité après 6 ans, {mais en corrigeant la violation de sécurité en interdisant les domaines relatifs dans les URL, il a rendu les domaines relatifs inutiles , {mais je pense qu'ils n'ont probablement pas été largement utilisés, probablement uniquement dans certaines grandes entreprises}}. alors, que serait-il [laissé] à la suite de rfc 1737, s'il était obéi? - 1) les domaines relatifs déclarés en 1987 deviendraient finalement inutiles, donc, le point de fuite, conçu pour montrer le domaine absolu, deviendrait aussi finalement inutile et redondant "légalement" c'est-à-dire tel que défini par les rfcs! (mais peut-être ont-ils prévu plus tard de ré-autoriser les domaines relatifs dans les URL après de nombreuses années, lorsqu'un large public (grand public) commence à connaître la possibilité de domaines relatifs). 2) et rfc 1737, si elle était respectée, elle corrigerait également la faille de sécurité. - mais même rfc 1034 ne créerait pas de faille de sécurité s'il atteignait des masses et il était largement admis que l'utilisation d'un domaine relatif n'était pas sûre! - donc, la recette principale pour le corriger atteignait un large public, et publier un rfc supplémentaire n'était qu'une des nombreuses façons de le faire.
Je pense maintenant que probablement la caractéristique relative du domaine n'est pas devenue largement connue après RFC 1034 (de 1987) parce qu'elle était d'une utilité trop limitée: seulement dans certaines grandes entreprises ou réseaux locaux de fournisseurs, et c'était une caractéristique sans valeur pratique, parce que les réseaux locaux pouvaient déjà créer n'importe quel domaine local, donc cette fonctionnalité était juste pour elle-même, c'était en fait juste un texte inutile dans rfc que n'importe qui devrait connaître et utiliser sans avoir d'avantage supplémentaire! mais les gens ont créé la petite brèche de sécurité en ignorant largement le rfc, tandis que les navigateurs ont commencé à lui obéir.
J'ai vérifié la fonctionnalité relative des domaines hier, cela fonctionne. (c'est ok, car le rfc 2396 (de 1998) l'a ré-autorisé après le rfc 1034 (de 1987) refusé, et plus tard le rfc 3986 (de 2005) le permet toujours). J'ai ajouté le suffixe DNS dans Windows 10 - Panneau de configuration - ... - Propriétés du périphérique réseau - Propriétés IPv4 - Supplémentaire - onglet DNS. quand j'ai ajouté "google.com" puis ouvert "http: // mail / "dans firefox, il a ouvert le serveur de google, mais il n'était pas configuré pour fonctionner avec simplement" mail "dans l'en-tête http" host ", donc j'ai obtenu quelque chose comme" 404 "page.
-
ma réponse au texte par le deuxième lien ( http://www.dns-sd.org/trailingdotsindomainnames.html ):
il cite également la règle dans rfc 1738 et dit:
Malheureusement, les personnes implémentant des clients de navigateur Web ne semblaient pas comprendre ce que cela signifiait. Lorsque vous accédez à un site Web, la valeur que la plupart des navigateurs Web mettent dans le champ "Hôte:" est ce que l'utilisateur a tapé, et non ce que l'ordinateur a fini par utiliser, après avoir appliqué la liste de recherche de l'utilisateur DNS pour créer un nom complet à partir du nom partiel. Par exemple, voici trois façons différentes dont l'utilisateur peut se référer à l'hôte "www.example.com". ... Lors de l'envoi du paramètre "Host:" au serveur Web, le client du navigateur Web saisit ce que l'utilisateur a tapé ("www.example.com.", "Www.example.com" ou "www") à la place de ce que le client a fini par rechercher dans DNS ("www.example.com." dans les trois cas). ...
- ce n'est pas très vrai (correct), car rfc 1738 était très strict à cet égard, et il interdisait les domaines relatifs dans toutes les URL, même s'il se trouve dans la barre d'adresse du navigateur, et l'url elle-même est la façon [recommandée] de faire toute référence à des sites, même si les gens l'écrivent sur papier, il n'était donc pas permis aux utilisateurs de se référer à ce site de cette manière, par rfc 1738, si ces utilisateurs pensaient par eux qu'ils utilisaient l'URL!
et semble que l'auteur de ce texte (Stuart Cheshire) ne connaissait pas le rfc 2396, donc ce texte est obsolète.
-
et quelle est la situation de nos jours? rfc 3986 (https://tools.ietf.org/html/rfc3986#page-21 ) permet de faire référence à un domaine absolu sans point de fuite: il est indiqué "L'étiquette de domaine la plus à droite d'un nom de domaine pleinement qualifié dans DNS peut être suivie d'un seul". "" et qu'il devrait être utilisé s'il est "nécessaire de faire la distinction entre le nom de domaine complet et un domaine local". Je pense qu'en raison des standarts de facto, il n'est presque jamais nécessaire, donc wordpress peut accepter le standart de facto et rediriger de l'adresse avec un point à la fin vers l'adresse sans lui.