产生的原因
当一个资源可以通过http或者https访问,但是不同端对于同一个资源使用的协议不同,但是后端的接口往往又是同一个,怎么做到适配?
为什么可以这么做?
当使用// 代替https://(http://),默认使用的是当前页面的协议,这样你就可以在不同的端获得正确的资源地址。
注意
如果你在浏览器单独输入一个//abc.com,则会使用默认的file协议。
为什么会发生上面的情况?
在解释之前,需要了解URI和URL,URL是特殊的URI。
- URI:统一资源标志符,资源可以是文档、图像、视频等等,
①访问资源的命名机制
②存放资源的主机名
③资源自身的名称,由路径表示,着重强调于资源。 - URL:统一资源定位符,开头都是以固定协议开始的
①协议(或称为服务方式)
②存有该资源的主机IP地址(有时也包括端口号)
③主机资源的具体地址。如目录和文件名等 - URN:统一资源命名
这三个有什么联系和区别呢?
维基百科的图片
举个简单例子来说:
地球: 我们知道我们生活在地球上,并且不会有第二个叫地球的;
地球、太阳系、银河系、宇宙:我们知道了我们生活在宇宙中,并且可以沿着
银河系->太阳系->就能找到我们了;
地球:为什么要地球呢?因为还有火星、木星等等,我们建立了一个统一的命名方式。
当然还有很多历史问题在其中,详情见附录
1、URL\URI历史
2、关于其讨论
3、区别
浏览器输入URL中发生了什么?
- 当你输入:// 的时候,会使用当前的浏览器协议
- 当你输入//,会识别为file:///,默认打开当前电脑上的文件,为什么会三个/,是因为建议阅读
scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]
- 比如你在浏览器键入file://c/,你就能看到你的电脑上的文件。