浏览器如何从相对的网址解析/构建绝对网址

时间:2018-10-10 06:19:12

标签: c# url browser relative-path

在浏览器地址栏中显示网址的网站:www.something.com/abc/def/ghi。 当您查看任何网站的源代码时,定位标记具有相对的href,例如href="../jkl/mno" 当您单击链接时,浏览器如何确定它必须加载www.something.com/abc/jkl/mno

例如:浏览https://alibabagroup.com/en/global/home->展开投资者关系->检查任何链接的来源。例如a href="../ir/home"->单击链接->浏览器通过替换"global/home"部分来将其解析为“ 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"
}

2 个答案:

答案 0 :(得分:1)

string ToAbsoluteUrl(params string[] pathParts)
{
    return new Uri(Path.Combine(pathParts)).ToString();
}

以这种方式使用它:

ToAbsoluteUrl("https://alibabagroup.com/en/global/home", "../ir/home");

答案 1 :(得分:0)

这可以通过遵循question here来实现:

static string ToAbsoluteUrl(string a, string b)
{   
    return new Uri(new Uri(a), b).ToString();
}