stringtranslate.com

Canonicalización

En informática , la canonización (a veces estandarización o normalización ) es un proceso para convertir datos que tienen más de una representación posible en una forma "estándar", "normal" o canónica . Esto se puede hacer para comparar diferentes representaciones en busca de equivalencia, para contar la cantidad de estructuras de datos distintas, para mejorar la eficiencia de varios algoritmos eliminando cálculos repetidos o para hacer posible imponer un orden de clasificación significativo .

Casos de uso

Nombres de archivos

En la mayoría de los casos, se puede acceder a los archivos de los sistemas de archivos a través de varios nombres de archivo . Por ejemplo, en sistemas tipo Unix , la cadena " /./" se puede reemplazar por " /". En la biblioteca estándar de C , la función realpath()realiza esta tarea. Otras operaciones que realiza esta función para canonizar los nombres de archivo son el manejo de /..componentes que hacen referencia a directorios principales, la simplificación de secuencias de múltiples barras, la eliminación de barras finales y la resolución de enlaces simbólicos .

La canonización de los nombres de archivo es importante para la seguridad informática. Por ejemplo, un servidor web puede tener una restricción que indique que solo C:\inetpub\wwwroot\cgi-binse pueden ejecutar los archivos que se encuentran en el directorio cgi. Esta regla se aplica comprobando que la ruta comience con C:\inetpub\wwwroot\cgi-bin\y solo entonces ejecutándola. Si bien el archivo C:\inetpub\wwwroot\cgi-bin\..\..\..\Windows\System32\cmd.exeinicialmente parece estar en el directorio cgi, explota el ..especificador de ruta para recorrer la jerarquía de directorios en un intento de ejecutar un archivo fuera de cgi-bin. Permitir cmd.exela ejecución sería un error causado por una falla en la canonización del nombre de archivo a la representación más simple, C:\Windows\System32\cmd.exe, y se denomina vulnerabilidad de recorrido de directorio . Con la ruta canonizada, está claro que el archivo no debe ejecutarse.

Unicode

En Unicode , muchas letras acentuadas se pueden representar de más de una manera. Por ejemplo, é se puede representar en Unicode como el carácter Unicode U+0065 (LETRA E MINÚSCULA LATINA) seguido del carácter U+0301 (ACENTO AGUDO COMBINADO), pero también se puede representar como el carácter precompuesto U+00E9 (LETRA E MINÚSCULA LATINA CON ACENTO AGUDO). Esto hace que la comparación de cadenas sea más complicada, ya que se debe considerar cada posible representación de una cadena que contenga dichos glifos. Para lidiar con esto, Unicode proporciona el mecanismo de equivalencia canónica . En este contexto, la canonización es la normalización Unicode .

Las codificaciones de ancho variable en el estándar Unicode, en particular UTF-8 , pueden causar una necesidad adicional de canonización en algunas situaciones. Es decir, según el estándar, en UTF-8 solo hay una secuencia de bytes válida para cualquier carácter Unicode, [1] pero algunas secuencias de bytes no son válidas, es decir, no se pueden obtener codificando cualquier cadena de caracteres Unicode en UTF-8. Algunas implementaciones descuidadas del decodificador pueden aceptar secuencias de bytes no válidas como entrada y producir un carácter Unicode válido como salida para dicha secuencia. Si se utiliza un decodificador de este tipo, algunos caracteres Unicode tienen efectivamente más de una secuencia de bytes correspondiente: la válida y algunas no válidas. Esto podría conducir a problemas de seguridad similares al descrito en la sección anterior. Por lo tanto, si se desea aplicar algún filtro (por ejemplo, una expresión regular escrita en UTF-8) a cadenas UTF-8 que luego se pasarán a un decodificador que permita secuencias de bytes no válidas, se deben canonizar las cadenas antes de pasarlas al filtro. En este contexto, la canonización es el proceso de traducir cada carácter de una cadena a su única secuencia de bytes válida. Una alternativa a la canonización es rechazar cualquier cadena que contenga secuencias de bytes no válidas.

URL

Una URL canónica es una URL para definir la única fuente de verdad para el contenido duplicado .

Uso por parte de Google

Una URL canónica es la URL de la página que Google considera más representativa de un conjunto de páginas duplicadas en su sitio. Por ejemplo, si tiene URL para la misma página (por ejemplo https://example.com/?dress=1234y https://example.com/dresses/1234), Google elige una como canónica. Tenga en cuenta que las páginas no necesitan ser absolutamente idénticas; los cambios menores en la clasificación o el filtrado de las páginas de lista no hacen que la página sea única (por ejemplo, la clasificación por precio o el filtrado por color del artículo).

Lo canónico puede estar en un dominio diferente al de un duplicado. [2]

Internet

Con la ayuda de las URL canónicas, un motor de búsqueda sabe qué enlace debe proporcionarse en el resultado de una consulta.

Un elemento de enlace canónico se puede utilizar para definir una URL canónica.

Intranet

En las intranets predomina la búsqueda manual de información. En este caso, las URL canónicas también pueden definirse en un formato no legible por máquina. Por ejemplo, en una directriz .

Varios

Las URL canónicas suelen ser las URL que se utilizan para la acción de compartir.

Dado que la URL canónica se utiliza en los resultados de búsqueda de los motores de búsqueda, en la mayoría de los casos son una página de destino .

Motores de búsqueda y SEO

En la búsqueda web y la optimización de motores de búsqueda (SEO), la canonización de URL se ocupa del contenido web que tiene más de una URL posible. Tener múltiples URL para el mismo contenido web puede causar problemas a los motores de búsqueda, específicamente a la hora de determinar qué URL debe mostrarse en los resultados de búsqueda. [3] La mayoría de los motores de búsqueda admiten el elemento de enlace Canonical como una pista sobre qué URL debe tratarse como la versión verdadera. Como indica John Mueller de Google, tener otras directivas en una página, como el elemento robots noindex, puede dar a los motores de búsqueda señales contradictorias sobre cómo manejar la canonización [4]

Ejemplo:

Todas estas URL apuntan a la página de inicio de Wikipedia, pero un motor de búsqueda solo considerará una de ellas como la forma canónica de la URL.

XML

Un documento XML canónico es, por definición, un documento XML que se encuentra en formato XML canónico, definido por la especificación XML canónica. En pocas palabras, la canonización elimina los espacios en blanco dentro de las etiquetas, utiliza codificaciones de caracteres particulares, ordena las referencias de espacios de nombres y elimina las redundantes, elimina las declaraciones XML y DOCTYPE y transforma las URI relativas en URI absolutas.

Un ejemplo sencillo serían los siguientes dos fragmentos de XML:

  1. <node1 x='1' a="1" a="2">Data</node1    > <node2>Data</node2>
  2. <node1 a="2" x="1">Data</node1> <node2>Data</node2>

El primer ejemplo contiene espacios adicionales en la etiqueta de cierre del primer nodo. En el segundo ejemplo, que se ha canonizado, se han eliminado estos espacios. Tenga en cuenta que, según la canonización del W3C, solo se eliminan los espacios dentro de las etiquetas, no los que se encuentran entre ellas.

A continuación se incluye un resumen completo de los cambios de canonización:

Lingüística computacional

En morfología y lexicografía , un lema es la forma canónica de un conjunto de palabras . En inglés , por ejemplo, run , runs , ran y running son formas del mismo lexema , por lo que podemos seleccionar una de ellas; por ejemplo, run , para representar todas las formas. Las bases de datos léxicas como Unitex utilizan este tipo de representación.

La lematización es el proceso de convertir una palabra a su forma canónica .

Véase también

Referencias

  1. ^ RFC 2279: UTF-8, un formato de transformación de ISO 10646
  2. ^ "Consolidar URL duplicadas con Canonicals | Google Search Central".
  3. ^ Cutts, Matt (4 de enero de 2006). "Consejos de SEO: canonización de URL". Matt Cutts: Gadgets, Google y SEO . Consultado el 3 de septiembre de 2013 .
  4. ^ "La URL canonizada es noindex, nofollow" . Consultado el 20 de abril de 2020 .

Enlaces externos