stringtranslate.com

normalización de URI

Tipos de normalización de URI.

La normalización de URI es el proceso mediante el cual los URI se modifican y estandarizan de manera consistente. El objetivo del proceso de normalización es transformar un URI en un URI normalizado para que sea posible determinar si dos URI sintácticamente diferentes pueden ser equivalentes.

Los motores de búsqueda emplean la normalización de URI para clasificar correctamente las páginas que pueden encontrarse con múltiples URI y para reducir la indexación de páginas duplicadas. Los rastreadores web realizan la normalización de URI para evitar rastrear el mismo recurso más de una vez. Los navegadores web pueden realizar una normalización para determinar si se ha visitado un enlace o si una página se ha almacenado en caché . Los servidores web también pueden realizar la normalización por muchas razones (es decir, para poder interceptar más fácilmente los riesgos de seguridad provenientes de las solicitudes de los clientes, usar solo un nombre de archivo absoluto para cada recurso almacenado en sus cachés, nombrado en los archivos de registro, etc.).

Proceso de normalización

Hay varios tipos de normalización que se pueden realizar. Algunos de ellos siempre preservan la semántica y otros pueden no serlo.

Normalizaciones que preservan la semántica.

Las siguientes normalizaciones se describen en RFC 3986 [1] para dar como resultado URI equivalentes:

http://example.com/foo%2ahttp://example.com/foo%2A
HTTP://[email protected]/Foohttp://[email protected]/Foo
http://example.com/%7Efoohttp://example.com/~foo
http://example.com/foo/./bar/baz/../quxhttp://example.com/foo/bar/qux
http://example.comhttp://example.com/
http://example.com:80/http://example.com/

Normalizaciones que normalmente preservan la semántica.

Para los URI http y https, las siguientes normalizaciones enumeradas en RFC 3986 pueden dar como resultado URI equivalentes, pero los estándares no garantizan esto:

http://example.com/foohttp://example.com/foo/
Sin embargo, no hay forma de saber si un componente de ruta URI representa un directorio o no. RFC 3986 señala que si el URI anterior redirige al último URI, eso es una indicación de que son equivalentes.

Normalizaciones que cambian la semántica

La aplicación de las siguientes normalizaciones da como resultado un URI semánticamente diferente, aunque puede hacer referencia al mismo recurso:

http://example.com/a/index.htmlhttp://example.com/a/
http://example.com/default.asphttp://example.com/
http://example.com/bar.html#section1http://example.com/bar.html
Sin embargo, las aplicaciones AJAX suelen utilizar el valor del fragmento.
http://208.77.188.166/http://example.com/
El reemplazo inverso rara vez es seguro debido a los servidores web virtuales .
https://example.com/http://example.com/
http://example.com/foo//bar.htmlhttp://example.com/foo/bar.html
http://www.example.com/http://example.com/
http://example.com/display?lang=en&article=fredhttp://example.com/display?article=fred&lang=en
Sin embargo, el orden de los parámetros en un URI puede ser significativo (esto no está definido por el estándar) y un servidor web puede permitir que la misma variable aparezca varias veces. [9]
http://example.com/display?id=123&fakefoo=fakebarhttp://example.com/display?id=123
Tenga en cuenta que un parámetro sin valor no es necesariamente un parámetro no utilizado.
http://example.com/display?id=&sort=ascendinghttp://example.com/display
http://example.com/display?http://example.com/display

Normalización basada en listas de URI

Se pueden desarrollar algunas reglas de normalización para sitios web específicos examinando listas de URI obtenidas de rastreos anteriores o registros del servidor web. Por ejemplo, si el URI

http://example.com/story?id=xyz

aparece en un registro de rastreo varias veces junto con

http://example.com/story_xyz

podemos suponer que los dos URI son equivalentes y pueden normalizarse a una de las formas de URI.

Schönfeld et al. (2006) presentan una heurística llamada DustBuster para detectar reglas DUST (diferentes URI con texto similar) que se pueden aplicar a listas de URI. Demostraron que una vez que se encontraron y aplicaron las reglas DUST correctas con un algoritmo de normalización, pudieron encontrar hasta el 68% de los URI redundantes en una lista de URI.

Ver también

Referencias

  1. ^ RFC 3986, Sección 6. Normalización y comparación
  2. ^ RFC 3986, Sección 6.2.2.1. Normalización de casos
  3. ^ RFC 3986, Sección 6.2.2.1. Normalización de casos
  4. ^ RFC 3986, Sección 6.2.2.3. Normalización del segmento de ruta
  5. ^ RFC 3986, 5.2.4. Eliminar segmentos de puntos
  6. ^ RFC 3986, 6.2.2.3. Normalización del segmento de ruta
  7. ^ RFC 3986, Sección 6.2.3. Normalización basada en esquemas
  8. ^ RFC 3986, Sección 6.2.3. Normalización basada en esquemas
  9. ^ "jQuery 1.4 $.param desmitificado". Ben Almamán. 20 de diciembre de 2009 . Consultado el 24 de agosto de 2013 .