URL absolutas omitiendo el protocolo (esquema) para preservar el de la página actual


85

Vi el //somepage.com/resourceformato de la URL. Por ejemplo:

<img src="//remotesite.com/image1.jpg" />

El punto de esto es que si la página actual (la página que define la imgetiqueta) está usando http, entonces la solicitud al sitio remoto se realiza a través de http. Si es https, es https. Esto elimina las advertencias del navegador de páginas no completamente encriptadas.

Mi pregunta es: ¿este formato de URL es seguro para todos los navegadores? ¿Y es un estándar?


4
Relacionado: ¿Puedo cambiar todos mis enlaces http: // a solo //? responde su primera y las URL relativas a Scheme responden a su segunda pregunta.
Gumbo



Aunque no usó el término en su pregunta, agregué la etiqueta relativa al protocolo (para que esta pregunta se pueda encontrar más fácilmente).
unor

Respuestas:


61

¿Es seguro usar este formato de URL para todos los navegadores?

No puedo decir nada con seguridad, pero debería poder probarlo en diferentes navegadores.

¿Y es un estándar?

Técnicamente, se denomina "referencia de ruta de red" según RFC 3986 . Aquí está el esquema para ello:

  relative-ref  = relative-part [ "?" query ] [ "#" fragment ]

  relative-part = "//" authority path-abempty
                / path-absolute
                / path-noscheme
                / path-empty

Sin embargo, hay un problema, cuando se usa en un <link>o @import, IE7 e IE8 descargan el archivo.

Aquí hay una publicación escrita por Paul Irish sobre el tema:


1
Tenga en cuenta que Paul Irish ha actualizado su publicación para indicar que los recursos ahora siempre deben servirse a través de https cuando sea posible. Vea la publicación vinculada por @Sarfraz arriba.
Evan Donovan

1
El código de fragmento de Google Analytics utiliza este esquema, por lo que apuesto a que es un navegador cruzado, mientras que muchos sitios web utilizan esta herramienta; de lo contrario, solo proporcionarían la versión https
Lukas Liesis

22

Sí, creo que lo es. Paul Irish acuñó el término URL relativa de protocolo .

También señalaría que es parte del proyecto HTML5Boilerplate que evangeliza la compatibilidad entre navegadores.

Nota: hay un caso de borde en IE6 con Google Analytics que se menciona en el artículo de Paul. Entonces no es perfecto.


Esto ya no es cierto, consulte stackoverflow.com/a/37609402/2237601 o aquí , ahora usan https://. También vea aquí por qué omitir el esquema de protocolo podría no ser una buena idea.
bg17aw

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.