什么是协议和主机组合?

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 包含(按此顺序)

  1. scheme component,
  2. :,
  3. //,
  4. authority component,以及
  5. 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 标准均未定义仅描述 schemeauthority 组件组合的术语。

我认为您可能真正要查找的术语是 origin,如 RFC 6454.

源不只是方案+主机,而是方案+主机+端口,像 https://example.com 这样的 URL 实际上不只是方案+主机——因为它们也表示(默认)端口:443 ,默认的 TLS 端口——就像在 http://example.com 中一样,有一个端口为 80 的内置表达式。

我不确定这里的原始问题的上下文是什么,但我知道一个常见的情况,通常会激发某人想知道什么是 scheme+host 的组合,你想要的是比较具有相同主机但方案不同的两个 URL,如 https://example.comhttp://example.com,或具有相同方案和主机但端口不同,如 http://example.comhttp://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.