URL vs URI vs URN

A URI can be further classified as a locator, a name, or both. The term “Uniform Resource Locator” (URL) refers to the subset of URIs that, in addition to identifying a resource, provide a means of locating the resource by describing its primary access mechanism (e.g., its network “location”). The term “Uniform Resource Name” (URN) has been used historically to refer to both URIs under the “urn” scheme [RFC2141], which are required to remain globally unique and persistent even when the resource ceases to exist or becomes unavailable, and to any other URI with the properties of a name. [1]

An individual scheme does not have to be classified as being just one of “name” or “locator”. Instances of URIs from any given scheme may have the characteristics of names or locators or both, often depending on the persistence and care in the assignment of identifiers by the naming authority, rather than on any quality of the scheme. Future specifications and related documentation should use the general term “URI” rather than the more restrictive terms “URL” and “URN” [RFC3305]. [1]

URI: Identifier of a specific resource. e.g. A page, document or book

URL: A special kind of identifier which also tells us how to access the resource. e.g. HTTP/HTTPS, FTP etc.

Venn diagram of URIs as defined by the W3C
Venn diagram of URIs as defined by the W3C [2]

Resources

[1] “RFC 3986 – Uniform Resource Identifier (URI): Generic Syntax”, Tools.ietf.org, 2005. [Online]. Available: https://tools.ietf.org/html/rfc3986. [Accessed: 22- Mar- 2020].

[2] “What is the difference between a URI, a URL and a URN?”, Stack Overflow, 2015. [Online]. Available: https://stackoverflow.com/questions/176264/what-is-the-difference-between-a-uri-a-url-and-a-urn. [Accessed: 22- Mar- 2020].