什么是协议和主机组合称为?

Posted

技术标签:

【中文标题】什么是协议和主机组合称为?【英文标题】:What is protocol and host combined called? 【发布时间】:2016-09-10 23:19:16 【问题描述】:

根据规范和语义,协议和主机相结合:https://example.com 仍称为主机,还是称为 URL、URI 或其他名称?

另外,(https) 是叫协议还是方案? nginx uses scheme,但我没有看到任何对该来源的引用。

【问题讨论】:

【参考方案1】:

我认为您可能真正在寻找的术语是origin,如RFC 6454。

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

我不确定这里原始问题的上下文是什么,但我知道一个常见情况通常会促使某人想知道方案+主机的组合被称为什么是您想要比较的情况两个 URL 要么具有相同的主机但不同的方案,如 https://example.comhttp://example.com,要么具有相同的方案和主机但不同的端口,如 http://example.comhttp://example.com:8888。考虑以这种方式比较 URL 最终会让您根据整个 Web 安全模型所基于的"same origin" policy 来考虑它们。

【讨论】:

【参考方案2】:

恕我直言,起源不是正确的术语,因为起源是指“通信来自哪里”。但它也可以是一个目的地。 因此,我认为 Base URL 是协议+主机+端口的最合适的术语。参见例如https://www.techopedia.com/definition/4858/base-url.

【讨论】:

【参考方案3】:

(以下是根据URI标准STD 66,目前映射到RFC 3986。)

具有权限(例如,域名或 IP 地址)must 的绝对 URI 由(按此顺序)组成

    scheme component, :, //, authority component,和 path component (→ path-abempty)。

所以根据这些规则,https://example.com

有效的 URI(路径为空), 或者还不是一个有效的 URI(因为它错过了路径,路径可能为空或以 / 开头)。

(但除非您在特定上下文中找到此 URI,否则当然会假定它是一个具有空路径的 URI。)

但是,HTTP 规范 RFC 2616 定义了scheme-specific rules for HTTP URIs:如果 URI 用作 Request-URI (see definition),并且 URI 的 abs_path 为空,则必须给出作为/(即https://example.com/)。

URI 标准和 HTTP 标准均未定义仅描述 schemeauthority 组件组合的术语。

【讨论】:

【参考方案4】:

实际上,这一切都在 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

【讨论】:

谢谢。假设您的意思是“您应该使用方案,而不是协议”? “Scheme”是一个直接来自 URI RFC 的术语,顺便说一句。

以上是关于什么是协议和主机组合称为?的主要内容,如果未能解决你的问题,请参考以下文章

Arp协议和Arp欺骗

Arp协议和Arp欺骗

Arp协议和Arp欺骗

URL类

网络协议和管理配置

七层协议和四层协议