请参阅:https://tools.ietf.org/html/rfc3986#section-3
并且:https://tools.ietf.org/html/rfc3986#section-3.3
" abempty"的起源对我来说是神秘的,快速搜索并没有找出任何定义。
答案 0 :(得分:4)
&#34; abempty&#34;,因为它在您参考的rfc中对其使用权的评论中声明,表示其值可以是 ab 溶质路径或< strong>空所以( abempty )。
答案 1 :(得分:0)
“Abempty”,意为 远离 为空,描述了路径与其前一个权限的关系。在路径优势相关的情况下,hier-part由“//”,权限和路径优势组成。权限组件可以是零长度 - 方案:///是有效的URI。
然而,当权限为零长度且路径为空时,无法区分这两个组件,因此路径优先路径 - 它&#34;以&#34; /&#34;开头。或者是空的&#34; (第3.3节)视情况而定。
来源:http://w3-org.9356.n7.nabble.com/path-abempty-in-URI-td170118.html(参见Fielding对Petch的回应。)
NB “abempty”这个词不是绝对和空洞的词汇。
请:
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
hier-part在&#34; generic&#34;的范围内不是可选的。 URI。
hier-part = ("//" authority path-abempty) / path-absolute / path-rootless / path-empty
双斜线,有趣的是,不是可选的,其中path-abempty是相关的。并且,稍微向前跳,权威可能是零长度:
reg-name = *( unreserved / pct-encoded / sub-delims )
路径 - abempty是相关的,其中hier-part由“//”,权限和路径abempty组成。 Path-abempty定义为:
path-abempty = *( "/" segment )
RFC规定,“当存在权限时,路径必须为空或以斜杠(&#34; /&#34;)字符开头。”如果注册名称为零长度,则为随意读取该语句可能表明以下URI有效:
scheme://
不是。下一句话指出,“当权限不存在时,路径不能以两个斜杠字符('//')开头。”这意味着在解析以“scheme://”开头的URI时,我们指出了零长度权限和零长度路径 - 否则我们可以在那里停止因为URI无效。
在这种情况下,不是通常的情况,零长度权限无法从零长度路径中辨别出来。因此,当权限为零长度时,我们没有选择,路径必须以正斜杠开头(更准确地说,它必须匹配路径 - abempty)和从权威中辨别出道路;否则,我会再说一遍: URI无效。
“abempty”这个词并不意味着道路可能是绝对的或空的。这个词意味着路径必须将自己与权威区分开来,因此它是非常的,即远离为空。
<强>示例:强>
此URI不明确,因为即使它具有零长度权限和零长度路径,也无法从省略权限的无效URI中识别它,并且路径以两个正斜杠开头。
scheme://
这个URI不含糊,因为它显然包含零长度权限和路径优先路径。
scheme:///
答案 2 :(得分:0)
鉴于其在RFC 3986, Section 3.3中的定义和上下文:我相信 abempty 是 absolute 和 empty 的写照;与带有拉丁文 ab 前缀的 empty 相对。
可能的路径模式定义为:
path-abempty = *( "/" segment ) ; begins with "/" or is empty
path-absolute = "/" [ segment-nz *( "/" segment ) ] ; begins with "/" but not "//"
path-noscheme = segment-nz-nc *( "/" segment ) ; begins with a non-colon segment
path-rootless = segment-nz *( "/" segment ) ; begins with a segment
path-empty = 0<pchar> ; zero characters
我的断言完全基于推论性推测,因为我找不到该词的词源或创造者。因此,如果有人具有相关知识,则要相互矛盾或佐证:请分享!