为了账号安全,请及时绑定邮箱和手机立即绑定

URI以两个斜杠开头......它们的表现如何?

URI以两个斜杠开头......它们的表现如何?

慕莱坞森 2019-07-26 16:41:46
URI以两个斜杠开头......它们的表现如何?最近我看到像这样工作的代码块:<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>根据RFC 2396(URI语法)和RFC 2616(HTTP 1.1),这些以两个斜杠开头的URI是有效的,但不幸的是,RFC并没有真正解释它们。任何人都可以指向一个解释浏览器将如何/应该/如何处理这些URI的资源?
查看完整描述

3 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

您正在寻找的资源是RFC 3986

见4.2节和5.4节。引用后者:

参考分辨率示例

在具有明确定义的基URI的表示中:

    http://a/b/c/d;p?q

相对引用转换为其目标URI,如下所示:

  "g:h"           =  "g:h"
  "g"             =  "http://a/b/c/g"
  "./g"           =  "http://a/b/c/g"
  "g/"            =  "http://a/b/c/g/"
  "/g"            =  "http://a/g"
  "//g"           =  "http://g"
  "?y"            =  "http://a/b/c/d;p?y"
  "g?y"           =  "http://a/b/c/g?y"
  "#s"            =  "http://a/b/c/d;p?q#s"
  "g#s"           =  "http://a/b/c/g#s"
  "g?y#s"         =  "http://a/b/c/g?y#s"
  ";x"            =  "http://a/b/c/;x"
  "g;x"           =  "http://a/b/c/g;x"
  "g;x?y#s"       =  "http://a/b/c/g;x?y#s"
  ""              =  "http://a/b/c/d;p?q"
  "."             =  "http://a/b/c/"
  "./"            =  "http://a/b/c/"
  ".."            =  "http://a/b/"
  "../"           =  "http://a/b/"
  "../g"          =  "http://a/b/g"
  "../.."         =  "http://a/"
  "../../"        =  "http://a/"
  "../../g"       =  "http://a/g"

这意味着当http://a/b/c/d;p?q您使用基本URI时//g,相对引用将转换为http://g


查看完整回答
反对 回复 2019-07-26
?
浮云间

TA贡献1829条经验 获得超4个赞

这些是协议相对URL。他们指向一个地址,保持当前的协议。

此表示法通常用于避免“混合内容”问题(IE警告消息在同一HTTPS页面上抱怨httphttps资源)。

更新:RFC 3986中的官方文档

以两个斜杠字符开头的相对引用称为网络路径引用; 这种参考很少使用。以单个斜杠字符开头的相对引用称为绝对路径引用。不以斜杠字符开头的相对引用称为相对路径引用。


查看完整回答
反对 回复 2019-07-26
  • 3 回答
  • 0 关注
  • 530 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信