什么是URI,URL,URN?以及golang实现
URI
:
UniformResourceIdentifier
,统一资源标识符;
URL
:
UniformResourceLocator
,统一资源定位符;
URN
:
UniformResourceName
,统一资源名称。
其中,
URL,URN
是
URI
的子集。
URI
:
UniformResourceIdentifier
,统一资源标识符;
URL
:
UniformResourceLocator
,统一资源定位符;
URN
:
UniformResourceName
,统一资源名称。
其中,
URL,URN
是
URI
的子集。
URI
:
UniformResourceIdentifier
,统一资源标识符;
URL
:
UniformResourceLocator
,统一资源定位符;
URN
:
UniformResourceName
,统一资源名称。
其中,
URL,URN
是
URI
的子集。
URI
:
UniformResourceIdentifier
,统一资源标识符;
URL
:
UniformResourceLocator
,统一资源定位符;
URN
:
UniformResourceName
,统一资源名称。
其中,
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]typeURLstruct{SchemestringOpaquestring//encodedopaquedataUser*Userinfo//usernameandpasswordinformationHoststring//hostorhost:portPathstring//path(relativepathsmayomitleadingslash)RawPathstring//encodedpathhint(seeEscapedPathmethod)ForceQuerybool//appendaquery('?')evenifRawQueryisemptyRawQuerystring//encodedqueryvalues,without'?'Fragmentstring//fragmentforreferences,without'#'}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。