什么是协议和主机组合?
What is protocol and host combined called?
根据规范和语义,协议和主机结合在一起:https://example.com
仍然称为主机,还是称为 URL、URI 或其他名称?
还有,(https)是叫协议还是scheme? NGINX uses scheme,但我没有看到任何关于该来源的引用。
实际上,这一切都在 wiki 上...
https://en.wikipedia.org/wiki/Uniform_Resource_Identifier#Relationship_between_URIs.2C_URLs.2C_and_URNs
您要找的名字是URL。 URI 是资源标识符的全局名称,URL 是 web 中使用的特定类型的 URI。
而且,根据论文,你应该使用方案,而不是主机:
https://www.w3.org/TR/uri-clarification/#uri-schemes
(以下是根据URI标准STD 66, which currently maps to RFC 3986。)
具有权限的绝对 URI(例如,域名或 IP 地址)must 包含(按此顺序)
scheme
component,
:
,
//
,
authority
component,以及
-
path
component (→ path-abempty
).
所以根据这些规则,https://example.com
是
- 有效的 URI(路径为空),
- 或还不是有效的 URI(因为它缺少路径,该路径可能为空或以
/
开头)。
(但除非你在特定的上下文中找到这个 URI,否则人们当然会认为它是一个空路径的 URI。)
但是,HTTP规范RFC 2616定义了scheme-specific rules for HTTP URIs: if the URI is used as Request-URI (see definition),而URI的abs_path
为空,必须给出/
(即https://example.com/
) .
URI 标准和 HTTP 标准均未定义仅描述 scheme
和 authority
组件组合的术语。
我认为您可能真正要查找的术语是 origin,如 RFC 6454.
源不只是方案+主机,而是方案+主机+端口,像 https://example.com
这样的 URL 实际上不只是方案+主机——因为它们也表示(默认)端口:443 ,默认的 TLS 端口——就像在 http://example.com
中一样,有一个端口为 80 的内置表达式。
我不确定这里的原始问题的上下文是什么,但我知道一个常见的情况,通常会激发某人想知道什么是 scheme+host 的组合,你想要的是比较具有相同主机但方案不同的两个 URL,如 https://example.com
和 http://example.com
,或具有相同方案和主机但端口不同,如 http://example.com
和 http://example.com:8888
.考虑以这种方式比较 URL 最终会让您根据整个 Web 安全模型所基于的 "same origin" policy 来思考它们。
恕我直言,origin 不是正确的术语,因为 origin 指的是 "where the communication comes from"。但它也可以是一个目的地。
因此,我认为 Base URL 是协议+主机+端口最合适的术语。参见例如https://www.techopedia.com/definition/4858/base-url.
根据规范和语义,协议和主机结合在一起:https://example.com
仍然称为主机,还是称为 URL、URI 或其他名称?
还有,(https)是叫协议还是scheme? NGINX uses scheme,但我没有看到任何关于该来源的引用。
实际上,这一切都在 wiki 上... https://en.wikipedia.org/wiki/Uniform_Resource_Identifier#Relationship_between_URIs.2C_URLs.2C_and_URNs
您要找的名字是URL。 URI 是资源标识符的全局名称,URL 是 web 中使用的特定类型的 URI。 而且,根据论文,你应该使用方案,而不是主机: https://www.w3.org/TR/uri-clarification/#uri-schemes
(以下是根据URI标准STD 66, which currently maps to RFC 3986。)
具有权限的绝对 URI(例如,域名或 IP 地址)must 包含(按此顺序)
scheme
component,:
,//
,authority
component,以及-
path
component (→path-abempty
).
所以根据这些规则,https://example.com
是
- 有效的 URI(路径为空),
- 或还不是有效的 URI(因为它缺少路径,该路径可能为空或以
/
开头)。
(但除非你在特定的上下文中找到这个 URI,否则人们当然会认为它是一个空路径的 URI。)
但是,HTTP规范RFC 2616定义了scheme-specific rules for HTTP URIs: if the URI is used as Request-URI (see definition),而URI的abs_path
为空,必须给出/
(即https://example.com/
) .
URI 标准和 HTTP 标准均未定义仅描述 scheme
和 authority
组件组合的术语。
我认为您可能真正要查找的术语是 origin,如 RFC 6454.
源不只是方案+主机,而是方案+主机+端口,像 https://example.com
这样的 URL 实际上不只是方案+主机——因为它们也表示(默认)端口:443 ,默认的 TLS 端口——就像在 http://example.com
中一样,有一个端口为 80 的内置表达式。
我不确定这里的原始问题的上下文是什么,但我知道一个常见的情况,通常会激发某人想知道什么是 scheme+host 的组合,你想要的是比较具有相同主机但方案不同的两个 URL,如 https://example.com
和 http://example.com
,或具有相同方案和主机但端口不同,如 http://example.com
和 http://example.com:8888
.考虑以这种方式比较 URL 最终会让您根据整个 Web 安全模型所基于的 "same origin" policy 来思考它们。
恕我直言,origin 不是正确的术语,因为 origin 指的是 "where the communication comes from"。但它也可以是一个目的地。 因此,我认为 Base URL 是协议+主机+端口最合适的术语。参见例如https://www.techopedia.com/definition/4858/base-url.