http - how - input type text
¿Pueden los URI de HTTP tener caracteres que no sean ASCII? (6)
Traté de encontrar esto en el RFC relevante, IETF RFC 3986 , pero no pude entenderlo.
¿Los URI para HTTP permiten Unicode o no ASCII de cualquier tipo?
¿Puede citar la sección y el RFC que respalda su respuesta?
NB: Para aquellos que piensan que esto no está relacionado con la programación, sí lo está. Está relacionado con un filtro ISAPI que estoy construyendo.
Apéndice
He leído la sección 2.5 de RFC 3986. Pero RFC 2616, que creo que es el protocolo HTTP actual, es anterior a 3986, y por esa razón, supongo que no puede ser compatible con 3986. Además, incluso si o cuando el RFC de HTTP se actualiza, aún quedará el problema de la racionalización; en otras palabras, ¿un URI HTTP es compatible con TODAS las condiciones del RFC3986, incluyendo lo que sea apropiado para incluir caracteres que no sean US-ASCII?
Aquí hay un ejemplo: ☃.net.
En términos de la sección relevante de RFC 3986, creo que estás mirando a 2.5 .
EDITAR:
Al parecer, el desbordamiento de pila no detecta esto como una URL adecuada. Tendrás que copiar y pegar en tu navegador.
Muchos navegadores no son compatibles con los URI con caracteres Unicode (los he implementado en un sitio web que he creado, blogvani.com) y Google los escanea y los mantiene intactos. Sin embargo, no creo que funcione en dominios de nivel superior, al menos no con el registrador y no directamente.
Para dominios de nivel superior, si tiene un dominio registrado en Unicode (por ejemplo, las personas pueden registrar dominios en hindi), se convertirá a un código correspondiente en ASCII (algo que puede ir como jdhfks3243-32434.com) ...
Es bastante divertido ver cómo se enruta esto y darse cuenta de que en realidad no vas a un dominio Unicode aunque parezca que sí.
No, no están permitidos. Simplemente revise el ABNF en RFC 3986.
RFC 3986 está siendo reemplazado por RFC 3987, que es totalmente compatible con Unicode, y proporciona reglas de asignación a / desde URI de estilo RFC 3986.
Solía ser que no se permitían caracteres no ingleses en DNS y URL / URI. Hubo un truco para permitirles usar% de codificación en URI. Sin embargo, muchos países como Rusia y China están comenzando a implementar DNS utilizando caracteres no latinos. Aquí hay una referencia a uno de estos http://en.wikipedia.org/wiki/Internationalized_domain_name