2010-12-31 9 views
66

Me pregunto cómo funciona un URL Shortener, por ejemplo, cómo extraen el texto de la barra de direcciones y lo asignan a la URL correcta, luego lo redirigen. ¿Qué lenguaje de programación usan? ¿Cómo mantienen el historial del mapeo? ¿Cómo aseguran la singularidad de la url acortada? ¿Cómo puede un lego desasignarlo sin visitar la URL?¿Cómo funciona un URL Shortener?

+51

solo 3 de votos? Vamos, él quiere aprender algo, cerrarlo más rápido! – IAdapter

+19

Esta fue la pregunta exacta que tuve y estoy muy decepcionado de ver que está cerrada. No es ambiguo ni está incompleto; es muy específico en lo que pregunta. – thumbtackthief

+2

@bmargulies Creo que la pregunta no debe cerrarse, esto fue muy útil e incluso responde, también piensa que 43 votaciones ascendentes y usted decidieron que se cerrara ... ¿por qué? –

Respuesta

30

Wiki Is Your Friend

Básicamente, un sitio web con un nombre más corto se utiliza como un marcador de posición, como bit.ly.

A continuación, bit.ly genera una clave para el usuario, que se genera aleatoriamente para no repetirse. Con 35 opciones de caracteres y 8 o más valores, haz los cálculos. Esas son muchas claves posibles. Si una url es igual a una clave previamente existente, recuerdo haber leído en alguna parte que también reutilizaron las claves.

Realmente no usan un lenguaje de programación específico, simplemente usan una redirección de URL simple, que se puede hacer con HTML, creo.

+0

oh, eso es genial. Muchas gracias – prap19

+16

La redirección NO está hecha con HTML, está hecha con encabezados HTTP. (Código de estado 301 o 302, dependiendo). – Yahel

+0

Ah bien, eso tendría más sentido. Gracias por la aclaración. –

18

En realidad, el proceso es bastante simple: hay un script que solicita la URL, genera una cadena aleatoria (y verifica que esta cadena no se haya utilizado todavía) y coloca los dos en algún tipo de base de datos. Cuando solicita una url, otra secuencia de comandos busca en la base de datos la cadena aleatoria y, si se encuentra, lo redirecciona al sitio.

Esto es, por supuesto, más complicado en la producción debido a las características necesarias como prevención de abuso, filtrado de URL, prevención de correo no deseado, verificación de URL, etc. Pero son bastante simples de implementar.


El lenguaje es irrelevante, casi todos lo harán.

+7

"y verifica que esta cadena no se haya utilizado todavía" .. ¿CÓMO? Esta es la pregunta más importante – Stewie

+3

@Stewie: SELECT * FROM asignaciones DONDE key = stringToCheck, y comprueba si se devolvieron las filas? O cualquier cosa similar en el lenguaje de elección de su base de datos. Parece ser la parte más simple de todo el problema para ser honesto. –

+0

@Stewie O pueden usar un __HashMap__ para mapear '' – roottraveller

21

Los shortners de URL solo generan un shortcode, asignan la URL de destino al shortcode y proporcionan una nueva URL. Al visitar la URL, se realiza una búsqueda en la base de datos con el código breve como clave y se le redirige a la URL objetivo. No existe una asociación algorítmica entre una URL acortada y una URL de destino, por lo que no se puede "desasignar" sin pasar por los sistemas de acortador de URL.

Puede hacerlo con cualquier lenguaje de programación y almacén de datos. La generación de código es trivial para garantizar la singularidad también; si tuviera una clave de número entero primario creciente, podría simplemente codificar la clave como base62 y publicarla. Dado que los códigos son de naturaleza incremental, nunca tendrás un conflicto.

+0

hey gracias. Eso fue conciso y comprensible. – prap19

Cuestiones relacionadas