Absolute URLs omitting the protocol (scheme) in order to preserve the one of the current page

HtmlHttpUrlWeb ApplicationsProtocol Relative

Html Problem Overview


I saw the //somepage.com/resource url format. For example:

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

The point of this is that if the current page (the page defining the img tag) is using http, then the request to the remote site is made via http. If it is https - it's https. This eliminates browser warnings of not fully encrypted pages.

My question is - is this URL format safe to use for all browsers. And is it a standard?

Html Solutions


Solution 1 - Html

> is this URL format safe to use for all > browsers.

I can't say anything for sure, but you should be able to test it in different browsers.

> And is it a standard?

Technically, it is called "network path reference" according to RFC 3986. Here is the scheme for it:

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

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

There is a problem though, when used on a <link> or @import, IE7 and IE8 download the file.

Here is a post written by Paul Irish on the subject:

Solution 2 - Html

Yes I believe it is. Paul Irish coined the term Protocol Relative URL.

I'd also point out it's part of the HTML5Boilerplate project which evangelises cross browser compatibility.

Note: there is an edge case in IE6 with google analytics which is mentioned in Paul's article. So it's not perfect.

Solution 3 - Html

Should be safe.

Is specified as format to use in Google's HTML/CSS styleguide: EDIT: latest url : https://google.github.io/styleguide/htmlcssguide.xml#Protocol

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBozhoView Question on Stackoverflow
Solution 1 - HtmlSarfrazView Answer on Stackoverflow
Solution 2 - HtmlxzyferView Answer on Stackoverflow
Solution 3 - HtmlPeter O'BrienView Answer on Stackoverflow