URLs encode the underlying protocol needed to locate the resource being identified. URNs, on the other hand, are location-independent and in no way imply any protocol or mechanism for locating the resource being identified. URLs begin with a prefix that identifies the protocol followed by a protocol-specific string. Only the host part of the URL is mandatory. Because the fabric of our society is now sewn together with URLs, most techno-literate humans over the age of eight understand the basics of URLs.
URNs are much less understood, yet are critical to building modern, Internet-friendly applications.
The syntax of a URN is structured to ensure that URNs are unique across disparate organizations. URLs are the preferred mechanism for identifiers that also need to contain location information.