根据RFC 3986 Section 3 - Syntax Components:
方案和路径组件是必需的,尽管路径可能是 空(没有人物)。
如果路径组件可以为空,有人可以说明路径组件是如何需要的吗?也许我在这种情况下误解了“必需”的定义,但我认为这意味着“必须非空”的内容,这显然与此处的规范相冲突。
答案 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以便进一步阅读。