什么是URL中的方案和协议之间的区别?

时间:2018-02-23 17:31:05

标签: url protocols url-scheme

我希望有人能向我澄清协议和网址中的方案之间的技术差异。 (或确定其他可以放入计划中的项目?)

最初我以为它们是相同的,而且这个计划只是它的另一个名称。

您可以在此wikipedia article找到此处引用的方案。

虽然根据答案here,方案不被视为协议,因为:

  

没有传输层或编码

这是定义它们之间差异的正确方法,还是有更多的方法可以使两者不同?

我如何清楚地告诉我何时处理协议或方案? (或除了也有资格在方案中使用的协议之外的东西?因为协议似乎放在了url的scheme部分中)

4 个答案:

答案 0 :(得分:6)

我的理解是这两个词有重大的重叠。 协议是商定的信息传输方法,方案是URL用于表示应该为特定资源提供什么类型协议的标识符。简而言之,方案只是协议的标识符。

例如

https://example.com 链接中, http:// 是告诉浏览器(或者是该资源是 example.com 的资源将通过超文本传输​​协议(HTTP)提供,这是" 协议的类型"

Scheme<>协议

ftp:// <> File Transer protocol
http:// <> Hypertext Transfer Protocol

答案 1 :(得分:3)

我喜欢将术语“方案”视为表示“协议”的URL区域。

 the scheme
┌────────┐
 https://www.google.com/
└─────┘
 the specific protocol

某些方案没有冒号或斜杠(例如,mailto方案仅需要冒号)。

答案 2 :(得分:2)

方案和协议不一样,所以要回答您的问题,从技术上讲,URL 中没有协议,只有方案。

要了解协议是什么,您需要检查请求。

考虑您的 URL 是(引用自 @clayjones94 答案):

<块引用>

https://example.com

您的 HTTP 请求(代码段)以:

GET / HTTP/1.1
Host: example.com

...

https 将是方案

HTTP/1.1 将成为协议

人们将两者混合或互换的原因是因为他们根据方案推断协议,但您不能真正这样做,因为您可能使用 HTTP/1.1 或 HTTP/2 协议发送一个向使用 https 方案的 https://example.com 发出请求。

答案 3 :(得分:1)

网络协议是用于传输数据的规则的通信系统。方案是对数据结构的系统规划。

URI 不包含协议,但包含方案 [1]。方案可以与协议相关联,但不是必须的。例如。 http: 方案与 HTTP/1.0 或 1.1 协议 [2] 相关联,但 file: 方案不与任何协议相关联。 Http 是方案和协议,而 file 是方案但不是协议。

[1] https://en.wikipedia.org/wiki/Uniform_Resource_Identifier; 29/01/21

[2] https://www.w3.org/2001/tag/doc/SchemeProtocols.html#useNaturalProtocol; 29/01/21