澄清URI路径组件?

时间:2013-04-10 17:10:08

标签: uri rfc rfc3986

根据RFC 3986 Section 3 - Syntax Components

  

方案和路径组件是必需的,尽管路径可能是      空(没有人物)。

如果路径组件可以为空,有人可以说明路径组件是如何需要的吗?也许我在这种情况下误解了“必需”的定义,但我认为这意味着“必须非空”的内容,这显然与此处的规范相冲突。

2 个答案:

答案 0 :(得分:1)

这里,“必需”仅表示“始终存在”:方案和路径 绝对URI的组件始终存在。

由于生产,方案组件不能为空 “scheme”至少需要一个字符。

路径组件可以为空,因为生产 “path-empty”(“hier-part”的一部分)由零个字符组成。

答案 1 :(得分:0)

空的一个常见实例 - 更准确地说, abempty - 路径是一个类似#include <Keyboard.h> void setup() { // Initialize Button Pins Keyboard.begin(); pinMode(9, INPUT_PULLUP); } void loop() { static bool pressed = false; // does the pedal close the circuit with GND? if (digitalRead(9) == HIGH) { // no if (pressed) { Keyboard.release(KEY_RIGHT_ALT); pressed = false; } } else { // yes if (!pressed) { Keyboard.press(KEY_RIGHT_ALT); pressed = true; } } delay(500); // waste time } 的URI,其中路径为空。单独的权限组件(在本例中为http://stackoverflow.com)并不足以识别资源

当权限为空时,路径必须以stackoverflow.com开头,以便区分路径和权限 - /是有效的URI - 因此 abempty 路径。另请查看this answer以便进一步阅读。