浏览器如何 resolves/constructs 绝对 url 从相对的
How does a browser resolves/constructs an absolute url from a relative one
浏览器地址栏中显示 url 的网站:www.something.com/abc/def/ghi
。
当您查看任何网站的源代码时,锚标记具有相对 href,如 href="../jkl/mno"
当您单击 link 时,浏览器如何确定它必须加载 www.something.com/abc/jkl/mno
?
例如:通过替换 "global/home"
部分浏览 https://alibabagroup.com/en/global/home --> Expand Investor Relations --> Inspect source of any link. e.g. a href="../ir/home"
--> Click the link --> Browser resolves this to "https://www.alibabagroup.com/en/ir/home"
此外,如果有人知道如何在 C sharp 中以编程方式实现这一点,那将是一个很大的帮助?一些功能如下:
string ToAbsoluteUrl("https://alibabagroup.com/en/global/home", "../ir/home")
{
// Outputs as "https://alibabagroup.com/en/ir/home"
}
string ToAbsoluteUrl(params string[] pathParts)
{
return new Uri(Path.Combine(pathParts)).ToString();
}
这样使用:
ToAbsoluteUrl("https://alibabagroup.com/en/global/home", "../ir/home");
这可以通过遵循 question here 来实现:
static string ToAbsoluteUrl(string a, string b)
{
return new Uri(new Uri(a), b).ToString();
}
浏览器地址栏中显示 url 的网站:www.something.com/abc/def/ghi
。
当您查看任何网站的源代码时,锚标记具有相对 href,如 href="../jkl/mno"
当您单击 link 时,浏览器如何确定它必须加载 www.something.com/abc/jkl/mno
?
例如:通过替换 "global/home"
部分浏览 https://alibabagroup.com/en/global/home --> Expand Investor Relations --> Inspect source of any link. e.g. a href="../ir/home"
--> Click the link --> Browser resolves this to "https://www.alibabagroup.com/en/ir/home"
此外,如果有人知道如何在 C sharp 中以编程方式实现这一点,那将是一个很大的帮助?一些功能如下:
string ToAbsoluteUrl("https://alibabagroup.com/en/global/home", "../ir/home")
{
// Outputs as "https://alibabagroup.com/en/ir/home"
}
string ToAbsoluteUrl(params string[] pathParts)
{
return new Uri(Path.Combine(pathParts)).ToString();
}
这样使用:
ToAbsoluteUrl("https://alibabagroup.com/en/global/home", "../ir/home");
这可以通过遵循 question here 来实现:
static string ToAbsoluteUrl(string a, string b)
{
return new Uri(new Uri(a), b).ToString();
}