Request.Query["xxx"] 与Request.Url.OriginalString

Request.Query["xxx"] 与Request.Url.OriginalString这两数据不同:后者是最原始的URL,前者是处理过的URL

处理过程:

  • 将 URI 方案转换为小写。

  • 将主机名转换为小写。

  • 如果主机名为 IPv6 地址,则使用规范化 IPv6 地址。 ScopeId 和其他可选的 IPv6 数据将被移除。

  • 移除默认端口号和空端口号。

  • 通过压缩 /./、/../、// 等序列(包括转义表示形式),规范化分层 URI 的路径。 请注意,在某些方案中,不压缩转义表示形式。

  • 对于分层 URI,如果主机未以正斜杠 (/) 结尾,则添加一个正斜杠。

  • 默认情况下,URI 中的任何保留字符都要根据 RFC 2396 进行转义。 如果启用了国际资源标识符或国际域名分析,则会按照 RFC 3986 和 RFC 3987 对 URI 中的保留字符进行转义,因此该行为会发生变化。

参考内容:http://msdn.microsoft.com/zh-cn/library/system.uri.aspx  Uri类的remark


d.sky
原文地址:https://www.cnblogs.com/sky_Great/p/3014514.html