继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

什么是URI,URL,URN?以及golang实现

holdtom
关注TA
已关注
手记 1885
粉丝 240
获赞 992


URI:Uniform Resource Identifier,统一资源标识符; URL:Uniform Resource Locator,统一资源定位符; URN:Uniform Resource Name,统一资源名称。 其中,URL,URN是URI的子集。URI:Uniform Resource Identifier,统一资源标识符; URL:Uniform Resource Locator,统一资源定位符; URN:Uniform Resource Name,统一资源名称。 其中,URL,URN是URI的子集。URI:Uniform Resource Identifier,统一资源标识符; URL:Uniform Resource Locator,统一资源定位符; URN:Uniform Resource Name,统一资源名称。 其中,URL,URN是URI的子集。URI:Uniform Resource Identifier,统一资源标识符; URL:Uniform Resource Locator,统一资源定位符; URN:Uniform Resource Name,统一资源名称。 其中,URL,URN是URI的子集。

1. 概念和关系

URI:Uniform Resource Identifier,即统一资源标志符,用来唯一的标识一个资源。

URL:Uniform Resource Locator,统一资源定位符。即URL可以用来标识一个资源。

URN:Uniform Resource Name,统一资源命名。即通过名字来表示资源的。

集中URL,URN是URI的一种实现方式。互联网最广泛使用的是URL

URI格式:[scheme:] scheme-specific-part

如 http://www.le.com

    mailto:jeff@javajeff.com

 news:comp.go.lang

URI可以进一步分为不透明的(opaque)和分层(hierarchical)的两类

opaque指的是URI的scheme-specific-part部分不以/开头,是一个整个部分,没有分层结构。如:mailto:jeff@javajeff.com , news:comp.go.lang

hierarchical指的是以/开头,scheme-specific-part可以由好几部分组成

2. golang 对URI,URL实现

以斜杠开头解析为  :[scheme:][//[userinfo@]host][/]path[?query][#fragment]

否则解析为(opaque):scheme:opaque[?query][#fragment]

type URL struct {

    Scheme     string

    Opaque     string    // encoded opaque data

    User       *Userinfo // username and password information

    Host       string    // host or host:port

    Path       string    // path (relative paths may omit leading slash)

    RawPath    string    // encoded path hint (see EscapedPath method)

    ForceQuery bool      // append a query ('?') even if RawQuery is empty

    RawQuery   string    // encoded query values, without '?'

    Fragment   string    // fragment for references, without '#'

}

©著作权归作者所有:来自51CTO博客作者暮色伊人的原创作品,如需转载,请注明出处,否则将追究法律责任


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP