为啥在 HTML 中使用 href="// 而不是 href="http://? [复制]

Posted

技术标签:

【中文标题】为啥在 HTML 中使用 href="// 而不是 href="http://? [复制]【英文标题】: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://

【问题讨论】:

***.com/questions/4978235/… 【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

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

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

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

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

【讨论】:

“这将防止浏览器警告”如果目标主机也被配置为通过 SSL 正确地提供资源。如果不是,则行为范围从超时到 SSL 证书警告再到 404。 这只有在资源的域支持与正在访问的托管页面相同的协议时才有效。 感谢您的详细介绍。

以上是关于为啥在 HTML 中使用 href="// 而不是 href="http://? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

为啥你的"sudo nopasswd"不生效

为啥在Javascript里用window.location.href=‘a.html’语句不能实现网页跳转啊。浏览器还是显示原网页。

HTML 为啥设置width不管用

html a标签为啥点击不了

html中的链接<a href="">,双引号里面填的内容是啥,为啥我填图片的名称却不能显示呢

html 为啥css打开没图片帮忙看看?