2012-01-21 17 views
29

¿Hay alguna razón para incluir el protocolo http/https en el atributo href de los enlaces?html - enlaces sin protocolo http

¿Sería bien para dejarlo fuera:

<a href="example.com">my site</a> 
+0

Gracias @Gareth buena explicación! –

+7

La parte de la URL que hace que un enlace vaya externamente es // no el protocolo. El protocolo solo le dice a la computadora qué dispositivo usar en el enlace. Puede vincular a "http://example.com", https://example.com, ftp://example.com o simplemente //example.com. Este último indica que debe usar el protocolo de su cliente actual (generalmente un navegador http/https, pero podría ser un cliente de correo electrónico, etc.) y es extremadamente útil cuando considera que un sitio tiene protocolos http y https en ejecución. –

Respuesta

84

La inclusión de la parte "http:" o "https:" es, en parte, solo una cuestión de tradición, en parte, es una cuestión de especificar realmente el protocolo. Si está predeterminado, se usa el protocolo de la página actual; Por ejemplo, //www.example.com se convierte en http://www.example.com o https://www.example.com dependiendo de la URL de la página de referencia. Si una página web se guarda en un disco local y luego se abre desde allí, no tiene protocolo (solo el archivo: pseudo-protocolo), por lo que las URL como //www.example.com no funcionarán; así que aquí hay una razón para incluir la parte "http:" o "https:".

Omitir también la parte "//" es completamente diferente, convirtiendo la URL en una URL relativa que se interpretará como relativa a la URL base actual. El motivo por el que www.example.com funciona cuando se escribe o pega en la línea de dirección de un navegador es que las URL relativas no tendrían sentido allí (no hay una URL base con la que relacionarse), por lo que los proveedores de navegadores decidieron dar a entender " http: // "prefijo allí.

-1

Sin http, que tomaría la dirección URL relativa. Si tiene que apuntar a una URL externa, se debe especificar http, de lo contrario, trataría de llevarle un recurso local.

Por lo tanto, depende de a dónde desee apuntar.

+6

False. El host se puede especificar sin un protocolo comenzando con "//" como en: "//www.example.com/blah/blah" – NVRAM

+0

madeks para señalar que los enlaces se consideran rutas relativas sin ningún http (o //) como @NVRAM señaló). Pude resolver mi problema marcando la URL e insertando "//" si no contenía "http". Esto funcionó muy bien. Gracias a los dos –

1

Las URL en href no están restringidas solo a documentos HTTP. Admiten todos los protocolos admitidos por navegadores: ftp, mailto, archivo, etc.

Además, puede precedir el nombre de la URL con '#', para vincular a una identificación html internamente en la página. Puede dar solo el nombre o la ruta del directorio, sin un protocolo, que se tomará como una URL relativa.

Cuestiones relacionadas