¿Cómo funcionan servicios como TinyURL o Metamark ?
¿Simplemente asocian la pequeña clave URL con una página web [¿virtual?] Que simplemente proporciona un "redireccionamiento HTTP" a la URL original? ¿O hay más "magia" en ello?
[redacción original] A menudo uso servicios de acortamiento de URL como TinyURL, Metamark y otros, pero cada vez que lo hago, me pregunto cómo funcionan estos servicios. ¿Crean un nuevo archivo que redirigirá a otra página o usan subdominios?
web-services
url
url-shortener
bit.ly
short-url
Nathan Campos
fuente
fuente
Respuestas:
No, no usan archivos. Cuando haces clic en un enlace como ese, se envía una solicitud HTTP a su servidor con la URL completa, como http://bit.ly/duSk8wK (enlaces a esta pregunta). Leen la parte de la ruta (aquí
duSk8wK
), que se asigna a su base de datos. En la base de datos, encuentran una descripción (a veces), su nombre (a veces) y la URL real. Luego emiten una redirección, que es una respuesta HTTP 302 y la URL de destino en el encabezado.Esta redirección directa es importante. Si usara archivos o primero cargara HTML y luego lo redireccionara, el navegador agregaría TinyUrl al historial, que no es lo que desea. Además, el sitio al que se redirige verá la referencia (el sitio del que proviene originalmente) como el sitio en el que se encuentra el enlace TinyUrl (es decir, twitter.com, su propio sitio, donde sea que esté el enlace). Esto es igualmente importante, para que los propietarios de sitios puedan ver de dónde vienen las personas. Esto tampoco funcionaría si se carga una página que redirecciona.
PD: hay más tipos de redireccionamiento. HTTP 301 significa: redireccionamiento permanente. Si eso sucediera, el navegador ya no solicitará el sitio bit.ly o TinyUrl y esos sitios querrán contar las visitas. Es por eso que se usa HTTP 302, que es una redirección temporal. El navegador volverá a preguntar a TinyUrl.com o bit.ly cada vez, lo que hace posible contar las visitas por usted (algunos pequeños servicios de URL ofrecen esto).
fuente
Moved
noMoved Permanently
. Ésta es una diferencia sutil. Al agregar la marca de tiempo, el navegador considera que debe verificar si el recurso se cambió o no cuando se alcanzó este tiempo de espera. Otros, como is.gd, usan un normal301 Moved Permanently
y el navegador no necesita volver a verificar (pero a menudo lo hará). Finalmente, los servicios como url4.eu no redireccionan en absoluto, sino que le muestran un anuncio primero. Con el 301, los servicios aún pueden contar visitantes únicos , pero no todos los accesos.Otros han respondido cómo funcionan los redireccionamientos pero también debes saber cómo generan sus diminutas URL. Oirá por error que crean un hash de la URL para generar ese código único para la URL abreviada. Esto es incorrecto en la mayoría de los casos, no están usando un algoritmo hash (donde podría haber colisiones).
La mayoría de los servicios populares de acortamiento de URL simplemente toman la ID en la base de datos de la URL y luego la convierten a Base 36 [a-z0-9] (no distingue entre mayúsculas y minúsculas) o Base 62 (distingue entre mayúsculas y minúsculas).
Un ejemplo simplificado de una tabla de base de datos TinyURL:
Los Web Frameworks que permiten un enrutamiento flexible hacen que el manejo de la URL entrante sea realmente fácil (Ruby, ASP.NET MVC, etc.).
Entonces, en su servidor web, puede tener una acción de ruta que se parece a (pseudocódigo):
Que enruta cualquier solicitud entrante a su servidor que tenga algún texto después de su dominio www.mytinyurl.com a su método asociado, RouteURL. Proporciona el texto que se pasa después de la barra diagonal en su URL a ese método.
Entonces, digamos que lo solicitó: www.mytinyurl.com/fif
A continuación, se pasará "quince" a su método, RouteURL (String UrlID). RouteURL luego convertiría "quince" a su equivalente base10, 20103, y se realizará una solicitud de base de datos para redirigir a cualquier URL almacenada con el ID 20103 (en este caso, www.digg.com). También aumentaría el recuento de visitas para Digg en uno antes de redirigir a la URL correcta.
Este es un ejemplo realmente simplificado, pero debería poder hacerse una idea general.
fuente
O(1)
búsqueda y encontrar duplicados; y luego enrute la pequeña URL existente para eso, o podría optar por generar una nueva. Por lo que puedo decir,goo.gl
reutiliza las pequeñas URL para la misma URL; intente esto en su extremo para esta página: ¿Entiende esto >>goo.gl/8gVb8X
?Como una extensión de @A Salcedo responde:
Algunos servicios de acortamiento de URL (Tinyarro.ws) van al extremo utilizando Unicode (UTF-8) para codificar caracteres en URL abreviadas, lo que permite una mayor cantidad de sitios web antes de tener que agregar un símbolo adicional. Dado que la mayoría de UTF-8 se acepta para su uso ( (IRI) RFC 3987 manejado por la mayoría de los navegadores ) que pasa de
62
sitios por símbolo a ~1,112,064
.Para poner en perspectiva, uno puede codificar 1.2366863e + 12 sitios con 2 símbolos (
1,112,064*1,112,064
); en noviembre de 2009,bit.ly
se accedió a enlaces abreviados2.1
mil millones de veces (en ese momento, bit.ly y TinyURL eran los servicios de acortamiento de URL más utilizados ) . que es ~ 600 veces menos de lo que puede caber en solo 2 símbolos, por lo que para la duración total de la existencia de todos los servicios de acortamiento de URL, debería durar otros 20 años como mínimo hasta agregar el tercer símbolo.fuente
En palabras simples, el acortador de URL asigna una secuencia larga y arbitraria de caracteres (URL original, larga y cutre) en una secuencia de caracteres corta y elegante. Esto no es más que hash, que se usa más comúnmente para crear tablas de búsqueda, HashMap, md5 Hash con fines criptográficos, etc.
Para comprender el proceso de acortamiento de URL, he creado un proyecto de demostración en GitHub y también una publicación de blog. Refiérase a esto y avíseme si fue útil.
Publicación de blog: acortamiento de URL
fuente