Czy subdomeny (nazwa domeny) mogą mieć podkreślenie""?

Czy subdomeny (nazwy domen) mogą mieć podkreślenie _?

Author: unor, 2010-02-02

7 answers

Większość udzielonych odpowiedzi to false . To jest całkowicie legalne mieć podkreślenie w nazwie domeny. Pozwolę sobie zacytować standard RFC 2181, Sekcja 11, "składnia nazw":

Sam DNS nakłada tylko jedno ograniczenie na poszczególne etykiety które mogą być wykorzystane do identyfikacji rekordów zasobów. Ten ograniczenie dotyczy długości etykiety i pełnej nazwisko. [...] Implementacji protokołów DNS nie wolno umieszczać żadnych ograniczenia na etykietach to może być użyte. W szczególności DNS serwery nie mogą odmówić obsługi strefy, ponieważ zawiera ona etykiety może to być nie do przyjęcia dla niektórych programów klienckich DNS.

Zobacz także oryginalną specyfikację DNS, RFC 1034 , sekcja 3.5 "Preferowana składnia nazwy", ale przeczytaj ją uważnie.

Domeny z podkreślnikami są bardzo powszechne na wolności. Sprawdź _jabber._tcp.gmail.com LUB _sip._udp.apnic.net.

Inne RFC wymienione tutaj dotyczą różnych rzeczy. The original pytanie dotyczyło domeny nazwy . Jeśli pytanie dotyczy hosta nazwy (lub dla adresów URL, które zawierają nazwę hosta), to jest to inny, odpowiedni standard to RFC 1123 , sekcja 2.1 " Host Nazwy i liczby", która ogranicza nazwy hostów do litery-cyfry-myślniki.

 272
Author: bortzmeyer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-30 16:01:55

[[2]}uwaga na temat terminologii, w dalszej części odpowiedzi Bortzmeiera [[3]}

Należy jasno określić definicje. Jak użyte tutaj:

  • nazwa domeny jest identyfikatorem zasobu w bazie danych DNS
  • Etykieta jest częścią nazwy domeny pomiędzy kropkami
  • Nazwa hosta jest specjalnym typem nazwy domeny, która identyfikuje hosty internetowe

nazwa hosta podlega ograniczenia RFC 952 i niewielkie rozluźnienie RFC 1123

RFC 2181 wyjaśnia, że istnieje różnica między nazwą domeny a nazwą hosta:

...[fakt, że] każda etykieta binarna może mieć rekord MX nie oznacza, że każda nazwa binarna może być używana jako część hosta adresu e-mail...

Więc podkreślniki w nazwy hostów są Nie-Nie, podkreślniki w nazwy domen są-ok.

In praktyka, można zobaczyć nazwy hostów z podkreśleniem. Jak mówi zasada solidności : "bądź konserwatywny w tym, co wysyłasz, liberalny w tym, co akceptujesz".

Uwaga na kodowanie

W XXI wieku okazuje się, że nazwy hostów oraz nazwy domen mogą być internacjonalizowane! Oznacza to uciekanie się do kodowania w przypadku etykiet , które zawierają znaki spoza dozwolonego zbioru.

W szczególności pozwala jeden do kodowania _ w nazwy hostów (Aktualizacja 2017-07: to wątpliwe, Zobacz komentarze. _ nadal nie może być używany w nazwach hostów. W rzeczywistości nie może być nawet stosowany w międzynarodowych etykietach.)

RFC 3490 z marca 2003 roku, " Internacjonalizacja nazw domen w aplikacjach (IDNA)". Dzisiaj mamy:
  • W związku z tym, że nie jest to możliwe, nie jest to możliwe.]}
  • RFC 5891 " IDNA: Protokół "
  • RFC 5892 "punkty kodu Unicode i IDNA"
  • RFC 5893 "Skrypty od prawej do lewej dla IDNA"
  • RFC 5894 "IDNA: Tło, wyjaśnienie i uzasadnienie"
  • RFC 5895 "mapowanie znaków dla IDNA 2008"

Możesz również sprawdzić wpis w Wikipedii

RFC 5890 wprowadza termin LDH (Letter-Digit-Hypen) label dla etykiet używanych w hostnames i mówi:

Jest to klasyczna forma etykiety używana, aczkolwiek z pewnymi dodatkowymi ograniczeniami, w nazwach hostów (RFC 952). Jego składnia jest identyczna z tą opisaną jako "preferowana składnia nazwy" w sekcji 3.5 RFC 1034 zmodyfikowanej przez RFC 1123. Krótko mówiąc, jest to ciąg składający się z liter ASCII, cyfr i myślnika z dalszym ograniczeniem, że myślnik nie może pojawić się na początku lub końcu łańcucha. Jak wszystkie etykiety DNS, jego całkowita długość nie może przekraczać 63 oktetów.

Wracając do prostszych czasów, ten projekt Internetu {[30] } jest wczesną propozycją internacjonalizacji nazwy hosta . Nazwy hostów ze znakami międzynarodowymi mogą być kodowane za pomocą na przykład kodowania ' RACE ' .

Autor propozycji "kodowania rasy" zauważa:

Zgodnie z RFC 1035, części hosta muszą być niewrażliwe na wielkość liter, rozpoczynać się i kończyć literą lub cyfrą oraz zawierać tylko litery, cyfry i znak myślnika (" -"). To oczywiście wyklucza wszelkie Umiędzynarodowione znaki, jak również wiele innych znaków z repertuaru znaków ASCII. Ponadto części nazw domen muszą mieć 63 oktety lub krótsze w długość.... Wszystkie skonwertowane części nazw, które zawierają znacjonalizowane znaki, zaczynają się od ciągu znaków " bq--". (...) Ciąg "bq--" został wybrany, ponieważ jest to bardzo mało prawdopodobne istnieć w częściach hosta przed wyprodukowaniem tej specyfikacji.

 76
Author: David Tonhofer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-07 13:08:16

Jest jeszcze jedna rzecz, którą musisz wiedzieć: jeśli część hosta lub subdomeny url zawiera podkreślenie, IE9 (nie testował innych wersji) nie może zapisywać plików cookie.

Więc uważaj na to. :-)

 41
Author: Kai Mattern,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-23 09:47:48

Wyjaśnienie Bortzmeyer i David Tonhofer , nazwy domen i nazw subdomen mogą zawierać znaki podkreślenia, ale nigdzie indziej.

Jak napisał David Tonhofer , etykiety są częściami pomiędzy okresami i powinny być zgodne z regułą LDH z wyjątkiem przy określaniu etykiet serwisowych i etykiet portów, aby odróżnić je od zwykłych etykiet. Następnie muszą występować na początku etykiety, która powinna być "krótkimi nazwami" z usługi Nazwa i numer portu rejestru , numer portu bez wiodących 0s, lub protokół (tj. tcp, udp). Etykiety te są ponadto ograniczone do 15 znaków.

  • RFC2782 określa prefiks subdomeny rekordów usług z podkreślnikami.
  • RFC6698 określa prefiks numery portów z podkreśleniami w rekordach certyfikatów TLSA.

W przeciwieństwie do odpowiedzi Davida Tonhofera, IDN nie pozwala na kodowanie podkreślenia ('_'U+005F LOW LINE) lub jakikolwiek inny nieprawidłowy znak ASCII.

Z RFC5890

[..] two new subsets of LDH labels are created by the wprowadzenie IDNA. Są to tzw. zastrzeżone etykiety LDH (R-LDH etykiety) i niezarejestrowane etykiety LDH (etykiety NR-LDH). Reserved LDH etykiety, znane jako "oznaczone nazwy domen" w niektórych innych kontekstach, mają własności, które zawierają " -- " w trzecim i czwartym znaki , które poza tym są zgodne z etykietą LDH Zasady .

Punycode koduje wszystkie punkty kodowe ASCII bezpośrednio jako ASCII, łącznie z podkreśleniem. Powstały R-LDH nie byłby zgodny z zasadami etykiety LDH. Na przykład, Σ_.com będzie zakodowane jako xn--_-zmb.com, co narusza zasady. Może istnieć homograficzny punkt kodowy, który wygląda jak podkreślenie, które może być zakodowane legalnie (być może '_' u+ff3f Fullwidth low line), Ale tego rodzaju Punkty kodowe byłyby klasyfikowane jako wyłączone przez RFC5892 pod 2.3 Ignorableperties jako Noncharacter_Code_Point.

RACE (inny proponowany schemat kodowania IDN) nie został zaakceptowany jako standard przez IETF i nie powinien być używany.

 8
Author: Andrew Domaszek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:17:54

Poszedłem za linkiem do RFC1034 i przeczytałem większość z nich i byłem zaskoczony, widząc to:

etykiety muszą być zgodne z regułami dla nazw hostów ARPANET. Muszą zacznij od litery, Zakończ literą lub cyfrą, a jako wnętrze znaki tylko litery, cyfry i myślniki. Są też ograniczenia dotyczące długości. Etykiety muszą mieć co najmniej 63 znaki.

Dla wyjaśnienia, nazwy domen składają się z etykiet, które są oddzielone kropkami ".". Ten spec musi być przestarzały, bo nie wspomina o używaniu podkreślników. Rozumiem zamieszanie, jeśli ktoś potknie się o tę specyfikację, nie wiedząc, że jest przestarzała. Jest przestarzały, prawda?

Poszedłem za linkiem do RFC2181 i przeczytałem jego część. Szczególnie, gdy dotyczy to kwestii autorytatywnej lub kanonicznej nazwy i kwestii tego, co sprawia, że ważna Etykieta DNS.

Jak napisalem wczesniej to jest tylko ograniczenie dlugosci wtedy zeby to podsumowac czyta:

(o nazwach i ważnych etykietach)

są one już odpowiednio sprecyzowane, jednak specyfikacje wydają się być czasami ignorowane. Dążymy do wzmocnienia istniejących specyfikacji.

Trochę mnie zastanawia, czy "ograniczenie tylko długości "jest " odpowiednie". Czy zaczniemy widzieć nazwy domen takie jak@#$%!! wkrótce? Czy internet nie wystarczy?

 6
Author: Ted Cambron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-21 02:12:20

Oto moje 2 grosze ze świata Javy:

Z konsoli Spark Scala, z Javą 8:

scala> new java.net.URI("spark://spark_master").getHost
res10: String = null

scala> new java.net.URI("spark://spark-master").getHost
res11: String = spark-master

scala> new java.net.URI("spark://spark_master.google.fr").getHost
res12: String = null

scala> new java.net.URI("spark://spark.master.google.fr").getHost
res13: String = spark.master.google.fr

scala> new java.net.URI("spark://spark-master.google.fr:3434").getHost
res14: String = spark-master.google.fr

scala> new java.net.URI("spark://spark-master.goo_gle.fr:3434").getHost
res15: String = null

To zdecydowanie zły pomysł ^^

 1
Author: Thomas Decaux,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-23 14:55:28

Nie, jeśli chcesz to rozwiązać w Internecie.

Nie możesz mieć: http://my_subdomain.somedomainname.com jest niepoprawne.

Możesz mieć: http://my-subdomain.somedomainname.com myślnikiem.

 0
Author: resourceful-idiot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-21 20:07:34