I am writing some documentation and I have a little vocabulary problem:
http://www.example.com/en/public/img/logo.gif
is called an "absolute" url, right?../../public/img/logo.gif
is called a "relative" url, right?- so how do you call this:
/en/public/img/logo.gif
?
Is it also considered an "absolute url", although without the protocol and domain parts?
Or is it considered a relative url, but relative to the root of the domain?
I googled a bit and some people categorize this as absolute, and others as relative.
What should I call it? A "semi-absolute url"? Or "semi-relative"? Is there another word?
Keep in mind just how many segments of the URL can be omited, making them relative (note: its all of them, just about). These are all valid URLs:
http://example.com/bar?baz
?qoo=qalue
/bar2
dat/sly
//auth.example.com
(most people are surprised by this one! Will use http or https, depending on the current resource)#anchor
I have seen it called a root relative URL.
It is sometimes called a virtual url, for example in SSI:
From the Microsoft's documentation about Absolute and Relative URLs
Facebook would call
/en/public/img/logo.gif
a protocol-relative URL (see their batch API).Here are the URL components:
A URL is called an absolute URL if it begins with the scheme and scheme specific part (here
//
afterhttp:
). Anything else is a relative URL.A URL path is called an absolute URL path if it begins with a
/
. Any other URL path is called a relative URL path.Thus:
http://www.example.com/en/public/img/logo.gif
is a absolute URL,../../public/img/logo.gif
is a relative URL with a relative URL path and/en/public/img/logo.gif
is a relative URL with an absolute URL path.Note: The current definition of URI (RFC 3986) is different from the old URL definition (RFC 1738 and RFC 1808).
The three examples with URI terms:
http://www.example.com/en/public/img/logo.gif
is a URI,../../public/img/logo.gif
is a relative reference with just a relative path and/en/public/img/logo.gif
is a relative reference with just an absolute path.