Búsqueda

jueves, abril 17, 2008

Un poco más sobre URLs

En el artículo anterior, uno de vosotros me animó a explicar el resto de cosas que puede tener una URL, y que no mencioné por no extenderme demasiado (con lo visto, ya era suficiente para ver la diferencia entre una URL y una dirección IP). Así que, vamos a ello.

Había explicado que una URL, en el caso más genérico, identifica un recurso en la red. Siendo más específicos, podemos decir que entre otras cosas, identifica un fichero en un ordenador. La URL nos dice también cómo acceder al recurso, es decir, qué protocolo utilizar. Nos quedamos con tres elementos básicos de la URL: el protocolo (lo que va antes de «://»), la máquina (identificada por su dirección IP o por su nombre de dominio), el puerto (tras «:», aparentemente opcional, aunque implícito si no aparece), y el recurso (tras el siguiente «/», también opcional, aunque se configura un recurso por defecto).

Fijaos que intento evitar la palabra «fichero» y referirme siempre a «recursos». Esto es porque no todos los recursos son ficheros. Pensemos en un buscador cualquiera (como Google, por ejemplo). Uno introduce sus palabras de búsqueda, y tras pulsar la tecla «Enter» o clicar el botón correspondiente, vamos a la siguiente página, que es una lista de resultados. Imagino que no pensaréis que dichas páginas existen en forma de ficheros en los servidores de Google, Yahoo, o el que sea, y que cientos de currantes han creado todas las páginas posibles, para todas las combinaciones de palabras posibles. Es obvio que algún programa genera en ese momento la página que vemos, y que ésta no tiene existencia real en ningún disco duro (salvo en alguna caché). Fijaos también que en este caso, en la página con la lista de resultados, la URL que vemos en la cajita de direcciones es muy larga, con símbolos «raros», y que aparecen las palabras que habéis tecleado.

Bien, eso es otro fragmento que puede aparecer en la URL, y que se denomina «query string» (que podríamos traducir como «cadena de consulta»). Esta «query string» aparece tras la ruta, precedida del símbolo de interrogación de cierre «?». Habitualmente (sobre todo en el caso de HTTP), consiste en parejas de tipo «nombre=valor» separados por el símbolo «&», donde «nombre» sería el nombre de un parámetro, y «valor» su valor. Si buscáis algo en Google, por ejemplo, veréis que la URL de la página de resultados comienza por «http://www.google.es/search» (si estáis en España, si no, el sufijo será diferente, como «.com», «.mx», «.ar», etc.), tras lo cual sigue la interrogación, y luego la «query string». En ella podemos observar un parámetro llamado «q», con los términos de búsqueda. Fijaos que los espacios en blanco han sido sustituidos por el símbolo de sumar «+», y que algunos caracteres (como eñes o vocales acentuadas) han sido sustituidos por una misteriosa secuencia de símbolos de porcentaje («%») seguidos de letras o números. Esto es porque en una URL no puede aparecer cualquier caracter, por lo que si queremos transmitir algún parámetro con uno de estos caracteres «prohibidos», hay que transformarlos (y el servidor, se ocupa de recuperarlos nuevamente).

Un recurso también puede ser un fragmento de otro recurso (por ejemplo, una sección en una página HTML). Para identificar un fragmento de un recurso, se coloca el caracter «#» al final de la URL (que identifica el recurso «padre»), seguido del identificador del fragmento. Si váis a cualquier artículo más o menos completo de la Wikipedia (por ejemplo, el relativo a URL), veréis que tras una breve introducción aparece una tabla de contenidos, consistente en varios enlaces. Estos enlaces llevan a secciones de la propia página, y si ponéis el puntero sobre ellos, veréis que la URL es la misma que la de la página, pero seguida del caracter «#» y un nombre. Si clicais sobre cualquiera de ellos, os desplazaréis por la página sin que ésta se recargue.

Finalmente, hay otro elemento que puede aparecer en una URL, pero esta vez, delante del identificador de la máquina (tras el «://»). Un recurso puede estar protegido, y sólo ser accesible a determinados usuarios, de forma que necesitamos autenticarnos. Si intentamos acceder a un recurso de este estilo mediante nuestro navegador, y la autenticación se realiza mediante nombre de usuario y contraseña, nos aparecerá una pequeña ventanita pidiendo dichos datos (ventanita que pinta el propio navegador, no la página, por lo que su apariencia varía de un navegador a otro, y es consistente con la de éste y la plataforma). En las aplicaciones web no es habitual, ya que la autenticación suele hacerse mediante un formulario HTML, integrado estéticamente en el diseño de la página. Sin embargo es algo que se puede hacer, y que sí es muy habitual en el caso de utilizar FTP. Si queremos, podemos evitar que aparezca la ventanita, añadiendo el nombre de usuario y la contraseña en la propia URL. Para ello, justo después del «://» se coloca el nombre de usuario, deguido del caracter de dos puntos («:»), la contraseña, el caracter arroba («@») y finalmente el resto de la URL (máquina, puerto, etc.). Así, nos quedaría algo de este tipo: «http://usuario:contraseña@dominio.com/recurso».

Como la contraseña aparecerá en la URL, y puede que no queramos que sea tan visible (y que quede guardada en algún registro de direcciones accedidas), podemos no ponerla, y utilizar sólo el nombre de usuario. En este caso, tras el nombre de usuario iría directamente la arroba, y luego el resto de la URL. El navegador nos mostrará igualmente la ventanita, pero con el nombre de usuario ya puesto, aunque esto ya depende del navegador: Opera lo hace así, Firefox muestra la ventana sin rellenar (al menos, en la versión 2), y Explorer, directamente no soporta añadir usuario y contraseña a la URL (al menos, en la versión 6).

Llegados a este punto, no puedo evitar mencionar una curiosidad sobre la arroba (que también es una antigua unidad de masa). Os habréis dado cuenta que la forma «usuario@dominio» es igual que la utilizada para una dirección de correo electrónico. Esta misma sintaxis se utiliza para otros protocolos y aplicaciones (como el telnet). Y es que en inglés, al simbolito en cuestión se le denomina «at», que dependiendo del contexto se puede traducir como «en» o «a». Por tanto, «fulanito@gmail.com» (por ejemplo), se puede leer como «fulanito en gmail.com». ¿A que ahora tiene más sentido lo de la arroba? Dejo a los filólogos e historiadores, el cómo surgió dicho simbolito, y cómo adquirió distintos significados.

10 comentarios:

  1. Si desde luego que la @ ahora tendría más sentido, claro, sería como un 'at'. Ey genial, muy bien comentado.

    Saludos

    ResponderEliminar
  2. Efctivamente la arroba había sido, de toda la vida, una unidad de masa. A mí me parecía muy de pueblo, porque se solía aplicar en ámbitos rurales, así que me sorprendió mucho cuando vi que se usaba en informática (¿para qué la usábamos en aquel cursillo de basic en los ochenta? ni idea, pero seguro que no era para direcciones de mail).
    Creo que se tomó porque aparecía en todos los teclados, pero nunca se usaba, de manera que estaba muy a mano para atribuirle funciones.

    En cuanto a su forma gráfica tiene toda la pinta de ser, teniendo en cuenta lo que dices de "at", una abreviatura de las que usaban los escribanos, como "&" que une "et" (la conjunción copulativa "y" en latín y francés)"ß" para la doble "s", la "ñ" para la doble "n" y tantas otras.

    ResponderEliminar
  3. Con respecto al usuario y la contraseña en Internet Explorer en URLs de protocolos HTTP y HTTPS, Microsoft desactivó tal posibilidad hace unos cuatro años a través de una de sus actualizaciones de seguridad. Se puede habilitar mediante unas entradas en el registro de Windows, aunque es poco recomendable.

    Más información: Internet Explorer does not support user names and passwords in Web site addresses (HTTP or HTTPS URLs)

    Por cierto, siempre que entro aquí me descubro ante lo sencillamente explicados que están los temas que se tratan en este blog. Excelente labor divulgativa, enhorabuena.

    ResponderEliminar
  4. Maravillosa la anécdota sobre la arroba. Gracias por iluminarnos ;)

    ResponderEliminar
  5. No sé si me equivoco, pero... de hecho, no es el correo electrónico una simple extensión al mismo protocolo ftp://usuario:contraseña@dominio.com ? Lo que hacemos realmente al usar el correo es entrar (loguear con nuestro usuario y contraseña) a la máquina donde se encuentran los recursos necesarios.

    ResponderEliminar
  6. Muy curioso, algunas cosillas ya las conocía, pero lo de la arroba lo desconocía por completo, como dice Evil Preacher es raro ver que una unidad de masa que se emplea en el ámbito rural ha saltado al teclado y los correos por Internet. ¿Por qué los ingleses le llaman at y nosotros arroba? ¿Por qué en muchos sitios se usa la arroba como símbolo que sustituye al o/a, significando que puede aplicarse a ambos géneros?

    ResponderEliminar
  7. La forma gráfica de @ procede, como decía, de las abreviaturas que usaban los escribanos.
    Era muy común poner un trazo sobre una letra para indicar que ésta era una abreviatura, es decir, para indicar que había una parte de la palabra que no se había escrito: por ejemplo, sobre una "q" significaba "que" y sobre "VM" "vuestra merced", en las formas más cursivas de escritura, es decir, escritas más deprisa, era muy frecuente que ese trazo se uniera al "rabito" en el que acababa la letra sobre la cual se ponía y se redondeara, de manera que del trazo recto en "ā" se pasaba a un trazo envolvente "@". Estos trazos envolventes eran muy frecuentes en las escrituras de la Edad Moderna en España, los documentos están llenos de ellos.
    Es decir, una "a" con un trazo envolvente era una abreviatura de algo que empezaba por "a". No he podido encontrar ejemplos en que significara justamente "arroba" pero apostaría a que los hay, de la misma manera a que apostaría a que los hay en inglés que signifiquen "at".

    ResponderEliminar
  8. ¡Ah! y lo de los ambos géneros, que es algo estéticamente horrible y un sinsentido gramatical, sea dicho de paso, viene de que algún listo pensó que integraba la idea de "a" del femenino, con lo redondito de la "o" masculina. Naturalmente es algo reciente y consecuencia del feminismo mal entendido.

    ResponderEliminar
  9. Según la Wikipedia, el origen del uso de @ en la informática es debido a que era un símbolo muy utilizado en determinados ámbitos. Parece ser que era habitual que se utilizara como abreviatura de "at the rate of" (al precio de), separando el nombre de un artículo de su precio (por ejemplo, "apples @ $1", "manzanas a un dolar"). Por ello, era un símbolo que aparecía en algunos modelos de máquinas de escribir de la época (no sé si en todos). Los primeros teclados de ordenador, copiaron la disposición y símbolos de las máquinas de escribir, por lo que tenían una @. Y como significaba "at", se vio como un símbolo muy adecuado para separar el nombre de usuario de su máquina, en las primeras encarnaciones del correo electrónico (que sólo funcionaba entre sistemas Unix, si mal no recuerdo) ya que no era un símbolo que se fuera a utilizar como nombre de nada. Y ya puestos, era muy adecuado para cualquier construcción de tipo "usuario@máquina"...

    ResponderEliminar
  10. asgard: nu... SMTP (Simple Mail Transfer Protocol) no sólo no tiene NADA que ver (pero nada) con FTP, sino que además el documento IETF para SMTP (RFC 821) es anterior al de FTP (931).

    Ya que has puesto una URL, supongo que te está confundiendo el concepto de "correo web", pero ten en cuenta que ya había correo electrónico muchos años antes del nacimiento de la WWW (y no te digo ya del webmail).

    ResponderEliminar

Nota: solo los miembros de este blog pueden publicar comentarios.