【问题标题】:Why using href="// instead of href="http:// in HTML? [duplicate]为什么在 HTML 中使用 href="// 而不是 href="http://? [复制]
【发布时间】:2014-02-13 02:34:16
【问题描述】:

为什么在域名前使用<link href="//something.com/style.css" rel="stylesheet"> 而不是http://https://

如果我们使用href=//,它会随着链接而改变吗?就像在 SSL 模式下会自动更改为https://

【问题讨论】:

标签: html uri protocol-relative


【解决方案1】:

正如您所猜测的那样:使用 href="//..." 而不指定 URI 方案可以动态匹配用于访问资源的任何协议,例如 http 或 https。

这实际上只是一个相对路径的示例,但它是相对于协议的。

来源:IETF 的 URI syntax documentation,第 3.1 节(方案)和第 4.2 节(相对参考)

【讨论】:

    【解决方案2】:

    是的,它将使用当前协议。

    即如果当前页面是https,它将使用https 访问href

    如果http 则通过普通http 访问链接。

    如果主机页面是 https,这将防止浏览器警告,并且比普通的 http 链接更安全。

    【讨论】:

    • “这将防止浏览器警告”如果目标主机也被配置为通过 SSL 正确地提供资源。如果不是,则行为范围从超时到 SSL 证书警告再到 404。
    • 这只有在资源的域支持与正在访问的托管页面相同的协议时才有效。
    • 感谢您的详细介绍。
    猜你喜欢
    • 2014-01-07
    • 1970-01-01
    • 2011-07-11
    • 2013-11-13
    • 2015-11-19
    • 2013-12-08
    • 2020-02-26
    • 2011-06-18
    相关资源
    最近更新 更多