URL中的方案和协议有什么区别?

URL中的方案和协议有什么区别?,url,protocols,url-scheme,Url,Protocols,Url Scheme,我希望有人能向我澄清url中协议和方案的技术区别。(或确定也可以放置在方案中的其他项目?) 起初我以为它们是一样的,那个计划只是它的另一个名字 您可以在本文档中找到此处引用的方案 尽管根据回答,方案不被视为协议,因为: 没有传输层或编码 这是定义两者差异的正确方式,还是有更多的原因使两者不同 在处理协议或方案时,我如何清楚地分辨?(或者协议以外的其他东西,也可以在方案中使用?因为协议似乎放在url的方案部分)我的理解是,这两个术语有很大的重叠。协议是商定的信息传输方法,方案是URL用来表示特定资

我希望有人能向我澄清url中协议和方案的技术区别。(或确定也可以放置在方案中的其他项目?)

起初我以为它们是一样的,那个计划只是它的另一个名字

您可以在本文档中找到此处引用的方案

尽管根据回答,方案不被视为协议,因为:

没有传输层或编码

这是定义两者差异的正确方式,还是有更多的原因使两者不同


在处理协议或方案时,我如何清楚地分辨?(或者协议以外的其他东西,也可以在方案中使用?因为协议似乎放在url的方案部分)

我的理解是,这两个术语有很大的重叠。协议是商定的信息传输方法,方案是URL用来表示特定资源应通过何种协议提供服务的标识符。简而言之,方案只是协议的标识符

例如 在链接中,http方案,它告诉浏览器(或该资源的请求者是谁)位于example.com的资源将通过超文本传输协议(http)提供,该协议是“协议的类型”

方案协议
ftp文件传输协议
http超文本传输协议

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


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

要知道协议是什么,您需要检查请求

假设您的URL是(引用@clayjones94-answer):

您的HTTP请求(代码段)以以下内容开头:

GET / HTTP/1.1
Host: example.com

...
https将是一种方案

HTTP/1.1将是协议


人们将两者混合或交换的原因是,他们根据方案推断出协议,但你不能这样做,因为你可以使用HTTP/1.1或HTTP/2协议向,它使用https方案。

网络协议是一种传输数据规则的通信系统。方案是数据结构的系统计划

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

 the scheme
 ┌───┐
 https://www.google.com/
 └───┘
 the specific protocol
[1] 29/01/21


[2] 21年1月29日

好的,谢谢你的回答。我只是想澄清一下你对mailto的意思,当你说“简言之,方案只是协议的标识符”时,这是否意味着“mailto:”是协议的标识符,它的名称与“mailto:”不同或者mailto方案的动作/功能是一个完全不同的东西,根本没有启动任何协议吗?@Jonathan002啊,我只是做了一个编辑,因为我实际上是不正确的。有一个mailto协议,方案语法也是
mailto
。因此,在本例中,协议名称与scheme语法相同虽然大多数URI方案最初设计用于特定协议,并且通常具有相同的名称,但它们在语义上与协议不同。例如,方案http通常用于使用http与web资源交互,但方案文件没有协议“这在技术上是不正确的”。:“是分隔符,而不是方案本身的一部分,“/”表示授权组件的开始。如您所见,:“和”/“方案中甚至不允许使用字符,而且所有方案都不包括字符。您所表示的协议也是本例中的方案。
GET / HTTP/1.1
Host: example.com

...