What's the difference between Uri.Host and Uri.Authority

Viewed 57935

System.Uri has Host, Authority, and DnsSafeHost. MS provides a nice example of when Host and DnsSafeHost are different here.

I'd like a similar example/explanation for Host and Authority.

6 Answers

From MSDN URI.Host page.

Unlike the Authority property, this property value does not include the port number.

Every HTTP URL conforms to the syntax of a generic URI. The URI generic syntax consists of a hierarchical sequence of five components:

URI = scheme:[//authority]path[?query][#fragment]

where the authority component divides into three subcomponents:

authority = [userinfo@]host[:port]

Like this:

wiki

An optional authority component preceded by two slashes (//), comprising:

  • An optional userinfo subcomponent that may consist of a user name and an optional password preceded by a colon (:), followed by an at symbol (@). Use of the format username:password in the userinfo subcomponent is deprecated for security reasons. Applications should not render as clear text any data after the first colon (:) found within a userinfo subcomponent unless the data after the colon is the empty string (indicating no password).
  • An optional host subcomponent, consisting of either a registered name (including but not limited to a hostname), or an IP address. IPv4 addresses must be in dot-decimal notation, and IPv6 addresses must be enclosed in brackets ([]).
  • An optional port subcomponent preceded by a colon (:).

For more details, you can refer to https://en.wikipedia.org/wiki/URL .

According to the documentation you linked to, the Authority property will include the port number if it is not the same as the default port of the Uri, while the Host property will only return the DNS Host name or IP Address.

I don't believe there are any more differences than that.

Related