【问题标题】:Should a .Net protocol-less URI showing as relative?.Net 无协议 URI 是否应该显示为相对?
【发布时间】:2014-02-03 15:43:35
【问题描述】:

全部,

在 HTML 中,我的理解是,以 // 开头的 url(例如 //www.google.com)指的是一个无协议的 url,应该在与提供页面的方案相同的方案中请求.

但是,下面的 c# 代码失败了

var uri = new Uri("//www.google.com", UriKind.RelativeOrAbsolute);
Assert.IsTrue(uri.IsAbsoluteUri);

我在这里遗漏了什么吗?目前我正在滚动自己的正则表达式来确定 URI 是否是绝对的:

return Regex.IsMatch(url, @"^(https?:)?//")

【问题讨论】:

  • 它实际上称为协议-相对 URL。
  • 谢谢 - 我会更新..
  • 严格来说,它与所服务实体的 URI 无关,而是与基本 URI 相关。这确实默认为您获得相对 URI 引用的实体的 URI,但 xml:base、HTML 的 <base/> 元素和其他机制可以覆盖它。

标签: c# .net url uri


【解决方案1】:

这不是绝对的。它与是否从通过 HTTP、HTTPS 或其他方式提供服务的源访问 URL 相关。

【讨论】:

  • 我猜你和@SLaks 是对的——我真的不明白没有方案使URI 成为绝对的。
  • @JonBates 如果它在另一个 URI 的上下文之外没有任何意义,那么它就不能是绝对的。
猜你喜欢
  • 1970-01-01
  • 2011-04-07
  • 2013-03-12
  • 2013-10-26
  • 2012-10-28
  • 2010-10-24
  • 2011-10-11
  • 1970-01-01
  • 2013-05-12
相关资源
最近更新 更多