html - links without http protocol

Web_Designer picture Web_Designer · Jan 21, 2012 · Viewed 68.4k times · Source

Is there a reason we include the http / https protocol on the href attribute of links?

Would it be fine to just leave it off:

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

Answer

Jukka K. Korpela picture Jukka K. Korpela · Jan 21, 2012

The inclusion of the “http:” or “https:” part is partly just a matter of tradition, partly a matter of actually specifying the protocol. If it is defaulted, the protocol of the current page is used; e.g., //www.example.com becomes http://www.example.com or https://www.example.com depending on the URL of the referring page. If a web page is saved on a local disk and then opened from there, it has no protocol (just the file: pseudo-protocol), so URLs like //www.example.com won’t work; so here’s one reason for including the “http:” or “https:” part.

Omitting also the “//” part is a completely different issue altogether, turning the URL to a relative URL that will be interpreted as relative to the current base URL.

The reason why www.example.com works when typed or pasted on a browser’s address line is that relative URLs would not make sense there (there is no base URL to relate to), so browser vendors decided to imply the “http://” prefix there.