pag*_*gid 91 html uri http protocol-relative
最近我看到像这样工作的代码块:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
根据RFC 2396(URI语法)和RFC 2616(HTTP 1.1),这些以两个斜杠开头的URI是有效的,但不幸的是,RFC并没有真正解释它们.
任何人都可以指向一个解释浏览器将如何/应该/如何处理这些URI的资源?
Dan*_*llo 86
您正在寻找的资源是RFC 3986.
见4.2节和5.4节.引用后者:
参考分辨率示例
在具有良好定义的基URI的表示中:
http://a/b/c/d;p?q
Run Code Online (Sandbox Code Playgroud)
相对引用转换为其目标URI,如下所示:
Run Code Online (Sandbox Code Playgroud)"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.
Pek*_*ica 61
这些是协议相对URL.他们指向一个地址,保持当前的协议.
此表示法通常用于避免"混合内容"问题(IE警告消息在同一HTTPS页面上抱怨http和https资源).
更新:RFC 3986中的官方文档:
以两个斜杠字符开头的相对引用称为网络路径引用; 这种参考很少使用.以单个斜杠字符开头的相对引用称为绝对路径引用.不以斜杠字符开头的相对引用称为相对路径引用.
| 归档时间: |
|
| 查看次数: |
20420 次 |
| 最近记录: |