Diferencia entre revisiones de «Lenguaje XHTML/Hipervínculos»

Contenido eliminado Contenido añadido
Hipervínculo a un recurso
ejemplos de enlaces
Línea 47:
Para empezar debemos distinguir entre dos tipos de enlaces: '''absolutos''' y '''relativos'''.
 
=== Enlaces absolutos ===
Los enlaces '''absolutos''' identifican el recurso independientemente de desde dónde se haga referencia. Los verá siempre con un prefijo seguido de dos puntos que identifica, por decirlo de algún modo, el protocolo que se utiliza para acceder al recurso. Entre los que la gran mayoría de navegadores reconocen:
 
Los enlaces '''absolutos''' identifican el recurso independientemente de desde dónde se haga referencia. Los verá siempre con un prefijo seguido de dos puntos que identifica, por decirlo de algún modo, el protocolo que se utiliza para acceder al recurso. Entre los que la gran mayoría de navegadores reconocen:
; <tt><nowiki>http:</nowiki></tt>
: Es el identificador del protocolo de transferencia de hipertexto o [[w:Hypertext Transfer Protocol|HTTP]], utilizado para las páginas web de internet.
Línea 55 ⟶ 57:
: Es el protocolo de transferencia de archivos o [[w:File Transfer Protocol|FTP]].
; <tt><nowiki>mailto:</nowiki></tt>
: Para enviar un [[w:Correo electrónico|correo electrónico]] al destinatario especificado.
; <tt><nowiki>gopher:</nowiki></tt>
: Protocolo [[w:Gopher|Gopher]].
; <tt><nowiki>news:</nowiki></tt>
: Servidores de noticias [[w:Usenet|Usenet]].
; <tt><nowiki>javascript:</nowiki></tt>
: Llamada a código [[Programación en JavaScript|JavaScript]], sólo para navegadores que lo soporten.
 
A pesar de que estos prefijos puedan o no pertenecer a estándares, lo cierto es que es el propio agente usuario (el navegador) el que debe implementar la forma de acceder a ese recurso, si es que tiene capacidad para hacerlo, ya sea de forma interna o bien llamando a un programa o al propio sistema operativo para que lo gestione externamente, como puede ser un enlace a un correo electrónico o a un canal de chat.
 
La estructura de un URI http es tal que así (texto entre corchetes opcional, en cursiva variable):
 
'''Nota:''' Esta sección no es una referencia exacta de los estándares involucrados en la construcción de URIs, aunque se intenta ser lo más preciso posible.
 
'''http://''' [ ''usuario'' [ ''':''' ''contraseña'' ] '''@''' ] ''servidor'' [ ''':''' ''puerto'' ] [ ruta_absoluta ] [ '''?''' ''parámetros'' ] [ '''#''' ''identificador'' ]
 
Y es muy similar para https y ftp. Si se requiere autenticación de usuario HTTP se puede hacer anteponiendo el '''usuario''' al nombre del servidor separado por el carácter arroba (<tt>@</tt>), e incluso la '''contraseña''' separada por los dos puntos del nombre de usuario, aunque no es recomendable ya que puede quedar en el historial del navegador. Para FTP existe un usuario especial de nombre ''anonymous'' que es el usuario con el que se accede a servidores públicos que lo permitan y es el que usará el navegador si no se especifica ninguno. Si se omite y es requerido por el servidor el navegador debería encargarse de ofrecer un método para solicitárselo al usuario. El '''[[w:Lista de números de puerto|puerto]]''' al que se debe conectar es por defecto el 80 para HTTP, 445 para HTTPS y 20 para FTP y, si no se especifica, se conectará diréctamente a esos puertos. En caso de que el servidor al que queramos acceder se encuentre en otro puerto deberemos especificarlo en la dirección. Después se encuentra la '''ruta de acceso''' al recurso, que va separado por el carácter de barra invertida (<tt>/</tt>) y donde cada carácter de barra invertida indica (no siempre, puesto que los servidores se pueden configurar para crear ''alias'') un nivel de directorio en el sistema de archivos del servidor. Al final de la ruta se suele especificar un nombre de archivo, pero si no se especifica ninguno los servidores acostumbran a estar configurados para servir el archivo ''index.html'' del directorio especificado, si existe, acortando un poco la dirección. Si el recurso al que se accede es en realidad un ejecutable de servidor se le pueden pasar '''parámetros''' que modifiquen su comportamiento, separando el nombre del valor por el signo igual (<tt>=</tt>). Si se le pasa más de un parámetro deberán separarse entre sí por el carácter ampersand (<tt>&amp;</tt>, pero recuerde codificarlo en el código html como &amp;amp;). También se puede especificar un '''identificador''' en el documento de destino para que el navegador muestre el contenido del documento empezando a partir del elemento identificado por el mismo (véase [[#Enlazar a parte de un documento|Enlazar a parte de un documento]]).
 
Algunos ejemplos de recursos HTTP, HTTPS y FTP:
* <nowiki>http://www.example.com/</nowiki> accede al servidor www.example.com por HTTP.
* <nowiki>http://www.example.com/#seccion1</nowiki> igual que el anterior pero sitúa el documento en el navegador con el elemento identificado como ''seccion1'' al principio del área de visualización del navegador, si es posible y existe tal identificador.
* <nowiki>http://www.example.com/index.html</nowiki>. En el caso de que el servidor esté configurado para servir el documento ''index.html'' si no se especifica el nombre del archivo, esta dirección equivaldría a la primera.
* <nowiki>https://usuario:password@www.example.com:81/ruta/de/acceso.php?param=hola&amp;action=muestra#zona-n</nowiki> aquí tenemos un ejemplo completito, especificando nombre de usuario, contraseña, puerto de acceso, parámetros, identificador y por HTTPS.
* <nowiki>ftp://usuario@ftp.example.com/</nowiki> aquí accedemos por ftp indicando nuestro nombre de usuario. Si se requiere contraseña lo más seguro es que el navegador nos muestre un diálogo en el que introducirla.
 
Para correos electrónicos (<tt>mailto:</tt>) se utiliza una sintaxis diferente, definida en la RFC2368<ref name="rfc2368">[[rfc:2368|RFC 2368]] (texto plano, en inglés).</ref>: se trata de el prefijo '''<tt>mailto:</tt>''' seguido de ninguno, uno o más destinatarios separados por comas. También se pueden especificar los parámetros de la cabecera del correo, aunque la mayoría de navegadores ignorarán los parámetros no seguros. Entre los parámetros que se acostumbran a aceptar están:
* <tt>to</tt>. Especifica los destinatarios y es redundante si se ponen los destinatarios seguidamente del ''<nowiki>mailto:</nowiki>''.
* <tt>subject</tt>. Indica el asunto del mensaje.
* <tt>body</tt>. Indica el cuerpo del mensaje, el contenido.
 
Absténgase de utilizar espacios en los URI. Si lo necesita (para el campo <tt>body</tt>) utilice la codificación hexadecimal [[w:American Standard Code for Information Interchange|ASCII]] correspondiente (con el signo de porcentage <tt>%</tt> precediendo cada carácter), en este caso <code>%20</code>. Algunos ejemplos:
 
* <nowiki>mailto:usuario1@example.com,usuario2@example.com</nowiki>
* <nowiki>mailto?to=usuario@example.com&amp;subject=Algo%20interesante</nowiki>
* <nowiki>mailto?subject=Hola,%20amigo&amp;body=Un%20saludo</nowiki>
 
El hecho de acceder a un enlace de correo electrónico no implica el envío del correo electrónico. El navegador debería hacer una llamada al programa de correo predeterminado del sistema operativo o el configurado por el navegador y crear un nuevo mensaje de correo rellenando los campos especificados y a la espera de que el usuario lo envíe, guarde, modifique, descarte, etc. El mensaje no es enviado desde el servidor que suministró el documento XHTML.
 
El URI <tt>javascript:</tt> es, de hecho, especial, ya que su contenido es procesado tal cual por la consola JavaScript del navegador, si es que tiene soporte para ello.
 
==Parrafos e <code>id</code>s==