¿Pueden los subdominios (nombres de dominio) tener subrayado _
?
¿Pueden los subdominios (nombres de dominio) tener subrayado _
?
Respuestas:
La mayoría de las respuestas dadas aquí son falsas . Es perfectamente legal tener un guión bajo en un nombre de dominio. Permítanme citar el estándar, RFC 2181, sección 11, "Sintaxis de nombre" :
El DNS en sí coloca solo una restricción en las etiquetas particulares que pueden usarse para identificar registros de recursos. Esa restricción se relaciona con la longitud de la etiqueta y el nombre completo. [...] Las implementaciones de los protocolos DNS no deben imponer restricciones en las etiquetas que se pueden usar. En particular, los servidores DNS no deben negarse a servir una zona porque contiene etiquetas que pueden no ser aceptables para algunos programas de cliente DNS.
Consulte también la especificación DNS original, RFC 1034 , sección 3.5 "Sintaxis de nombre preferido", pero léala detenidamente.
Los dominios con guiones bajos son muy comunes en la naturaleza. Compruebe _jabber._tcp.gmail.com
o _sip._udp.apnic.net
.
Otros RFC mencionados aquí tratan diferentes cosas. La pregunta original era para los nombres de dominio . Si la pregunta es para nombres de host (o para URL, que incluyen un nombre de host), entonces esto es diferente, el estándar relevante es RFC 1123 , sección 2.1 "Nombres y números de host " que limita los nombres de host a letras, dígitos, guiones.
_jabber._tcp.gmail.com
no es un dominio, es un FQDN. Debido a que las URL no pueden tener un guión bajo, probablemente nunca podrá comprar un dominio con un guión bajo. Por lo tanto, incluso si los dominios también pueden tener guiones bajos desde el punto de vista de la sintaxis de DNS, nunca encontrará ninguno, a menos que sea local.
Uno debe ser claro acerca de las definiciones. Como se usa aquí:
El nombre de host está sujeto a las restricciones de RFC 952 y la ligera relajación de RFC 1123
RFC 2181 deja en claro que hay una diferencia entre un nombre de dominio y un nombre de host:
... [el hecho de que] cualquier etiqueta binaria puede tener un registro MX no implica que se pueda usar ningún nombre binario como parte del host de una dirección de correo electrónico ...
Entonces, los guiones bajos en los nombres de host son un no-no, los guiones bajos en los nombres de dominio están bien
En la práctica, uno puede ver nombres de host con guiones bajos. Como dice el principio de robustez : "Sea conservador en lo que envía, liberal en lo que acepta".
¡En el siglo XXI, resulta que los nombres de host y los nombres de dominio pueden internacionalizarse! Esto significa recurrir a codificaciones en el caso de etiquetas que contienen caracteres que están fuera del conjunto permitido.
En particular, permite codificar los nombres_
de host en (Actualización 2017-07: Esto es dudoso, ver comentarios. _
Todavía no se puede usar en nombres de host. De hecho, ni siquiera se puede usar en etiquetas internacionalizadas).
El primer RFC para la internacionalización fue el RFC 3490 de marzo de 2003, "Internacionalización de nombres de dominio en aplicaciones (IDNA)". Hoy tenemos:
También puede consultar la entrada de Wikipedia
RFC 5890 presenta el término etiqueta LDH (Letter-Digit-Hypen) para las etiquetas utilizadas en los nombres de host y dice:
Esta es la forma de etiqueta clásica utilizada, aunque con algunas restricciones adicionales, en los nombres de host (RFC 952). Su sintaxis es idéntica a la descrita como la "sintaxis de nombre preferido" en la Sección 3.5 de RFC 1034 modificada por RFC 1123. Brevemente, es una cadena que consta de letras ASCII, dígitos y el guión con la restricción adicional de que el guión no puede aparecer al principio o al final de la cadena. Como todas las etiquetas DNS, su longitud total no debe exceder los 63 octetos.
Volviendo a tiempos más simples, este borrador de Internet es una propuesta temprana para la internacionalización del nombre de host . Los nombres de host con caracteres internacionales pueden codificarse utilizando, por ejemplo, la codificación 'RACE' .
El autor de la propuesta 'Codificación RACE' señala:
De acuerdo con RFC 1035, las partes del host deben ser insensibles a mayúsculas y minúsculas, comenzar y finalizar con una letra o dígito y contener solo letras, dígitos y el carácter de guión ("-"). Esto, por supuesto, excluye cualquier carácter internacionalizado, así como muchos otros caracteres en el repertorio de caracteres ASCII. Además, las partes de nombre de dominio deben tener 63 octetos o menos de longitud ... Todas las partes de nombre post-convertidas que contienen caracteres internacionalizados comienzan con la cadena "bq--". (...) Se eligió la cadena "bq--" porque es extremadamente improbable que exista en las partes del host antes de que se produjera esta especificación.
bar.baz.
(por ejemplo) es sólo la colección de nombres de dominio que son jerárquicamente por debajo bar.baz.
, por ejemplo a.bar.baz.
, f.g.bar.baz.
, h.bar.baz.
, etc. Este "subdominio" puede incluir o no nombres de host reales .
a.bar.baz
(un nombre de dominio) "un subdominio de" la cadena bar.baz
(otro nombre de dominio). Los nombres de dominio (recursos de la base de datos DNS) a.bar.baz
y bar.baz
pueden o no ser nombres de host .
Es posible que necesite saber algo adicional: si la parte del host o subdominio de la url contiene un guión bajo, IE9 (no ha probado otras versiones) no puede escribir cookies.
Así que ten cuidado con eso. :-)
Aclarando a bortzmeyer y David Tonhofer , las etiquetas de nombre de dominio y subdominio pueden contener guiones bajos, pero en ningún otro lugar.
Como escribió David Tonhofer , las etiquetas son partes intermedias y deben seguir la regla LDH, excepto cuando se especifican etiquetas de servicio y etiquetas de puerto para diferenciarlas de las etiquetas normales. Luego, deben aparecer al comienzo de la etiqueta, que deben ser los "Nombres cortos" del Registro de nombre de servicio y número de puerto , el número de puerto sin ceros iniciales o el protocolo (es decir, tcp, udp). Estas etiquetas de servicio están limitadas a 15 caracteres.
Contrariamente a la respuesta de David Tonhofer , IDN no permite codificar el guión bajo ('_' U + 005F LOW LINE) ni ningún otro carácter ASCII no válido.
De RFC5890
[..] dos nuevos subconjuntos de etiquetas LDH son creados por la introducción de IDNA. Estas se denominan etiquetas LDH reservadas (etiquetas R-LDH) y etiquetas LDH no reservadas (etiquetas NR-LDH). Las etiquetas LDH reservadas, conocidas como "nombres de dominio etiquetados" en algunos otros contextos, tienen la propiedad de que contienen "-" en el tercer y cuarto caracteres, pero que de lo contrario se ajustan a las reglas de etiquetas LDH .
Punycode codifica todos los puntos de código ASCII como ASCII directamente, incluido el guión bajo. La R-LDH resultante no cumpliría las reglas de la etiqueta LDH. Por ejemplo, Σ_.com
se codificaría como lo xn--_-zmb.com
que viola las reglas. Puede haber un punto de código homográfico que parece un guión bajo que puede codificarse legalmente (tal vez '_' U + FF3F de ancho bajo de línea completa), pero este tipo de puntos de código se categorizaría como NO DESACTIVADO por RFC5892 en 2.3 Propiedades ignorables como un No_Código_Punto.
RACE (el otro esquema de codificación IDN propuesto) no fue aceptado como estándar por IETF y no debe usarse.
Seguí el enlace a RFC1034 y leí la mayor parte y me sorprendió ver esto:
Las etiquetas deben seguir las reglas para los nombres de host de ARPANET. Deben comenzar con una letra, terminar con una letra o dígito y tener como caracteres interiores solo letras, dígitos y guiones. También hay algunas restricciones en la longitud. Las etiquetas deben tener 63 caracteres o menos.
Para aclarar, los nombres de dominio están formados por etiquetas que están separadas por puntos ".". Esta especificación debe estar desactualizada porque no menciona el uso de guiones bajos. Puedo entender la confusión si alguien tropieza con esta especificación sin saber que es obsoleta. Es obsoleto, ¿no?
Seguí el enlace a RFC2181 y leí un poco. Especialmente cuando se trata de la cuestión de qué es un nombre autorizado o canónico, y la cuestión de lo que hace que una etiqueta DNS sea válida.
Como se publicó anteriormente, indica que solo hay una restricción de longitud y, para resumir, se lee:
(sobre nombres y etiquetas válidas)
Estos ya están especificados adecuadamente, sin embargo, las especificaciones parecen a veces ignorarse. Buscamos reforzar las especificaciones existentes.
Me deja preguntándome si "una restricción de longitud solamente" es "adecuada". ¡Vamos a comenzar a ver nombres de dominio como @ # $%! ¿pronto? ¿No está Internet lo suficientemente jodido?
Recientemente, el foro CAB (*) decidió que
Todos los certificados que contengan un carácter de subrayado en cualquier entrada de dNSName y tengan un período de validez de más de 30 días DEBEN ser revocados antes del 15 de enero de 2019. https://cabforum.org/2018/11/12/ballot-sc-12- puesta de sol de guiones bajos en dnsnames /
Esto significa que ya no puede usar guiones bajos en dominios que tendrán un certificado SSL / TLS.
(*) El Foro del navegador de la Autoridad de certificación (CA / Browser Forum) es una reunión voluntaria de los principales emisores de certificados (como se define en la Sección 2.1 (a) (1) y (2) a continuación) y los proveedores de software de navegador de Internet y otras aplicaciones que utilizar certificados (Consumidores de certificados, como se define en la Sección 2.1 (a) (3) a continuación).
Los TLD individuales pueden colocar sus propias reglas y restricciones en los nombres de dominio según lo consideren conveniente, como para acomodar los idiomas locales.
Por ejemplo, según el CIRA , los .ca
nombres de dominio de Canadá están permitidos:
Cartas
a
a travész
, y los siguientes caracteres acentuados:é ë ê è â à æ ô œ ù û ü ç î ï ÿ
. Tenga en cuenta que los nombres de dominio no distinguen entre mayúsculas y minúsculas. Esto significa que no habrá distinción entre letras mayúsculas y minúsculas (A
=a
);Los números
0123456789
yEl carácter de guión ("
-
) (aunque no se puede usar para iniciar o finalizar un Nombre de dominio).
La longitud máxima es de 63 caracteres, excepto que cada carácter acentuado reduce ese límite en 4 caracteres.
( Fuente )
Por cierto, esto permite alrededor de 4 posibilidades de nombre de dominio Quadragintillion (sin contar subdominios) para dominios punto-ca.
Aquí mis 2 centavos del mundo Java:
Desde una consola Spark Scala, con Java 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
Definitivamente es una mala idea ^^
Acabo de crear un proyecto local (con vagabundo) y funcionaba perfectamente cuando se accedía a través de la dirección IP. Luego agregué some_name.test al archivo hosts e intenté acceder a él de esa manera, pero recibía "mala solicitud - 400" todo el tiempo. Perdí horas hasta que descubrí que solo cambiar el nombre de dominio a some-name.test resuelve el problema. Entonces, al menos localmente en Mac OS no funciona.
No, no puede usar el guión bajo en el subdominio sino en el guión (guión). es decir, my-subdomain.agahost.com es aceptable y my_subdomain.agahost.com no sería aceptable.
No si quieres que se resuelva en Internet.
No puede tener: http://my_subdomain.example.com no es válido.
Puede tener: http://my-subdomain.example.com con un guión.