什么是协议和主机组合称为?
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.com
和 http://example.com
,要么具有相同的方案和主机但不同的端口,如 http://example.com
和 http://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。)
但是,HTTP 规范 RFC 2616 定义了scheme-specific rules for HTTP URIs:如果 URI 用作 Request-URI (see definition),并且 URI 的 abs_path
为空,则必须给出作为/
(即https://example.com/
)。
URI 标准和 HTTP 标准均未定义仅描述 scheme
和 authority
组件组合的术语。
【讨论】:
【参考方案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 的术语,顺便说一句。以上是关于什么是协议和主机组合称为?的主要内容,如果未能解决你的问题,请参考以下文章