【问题标题】:Special symbols in URLsURL 中的特殊符号
【发布时间】:2013-03-21 16:22:56
【问题描述】:

我刚刚看到 AngelList 的这个 URL - http://✌.com/。它有一个奇怪的符号,它重定向到https://angel.co/。有人知道这是如何工作的吗?我不认为你可以在 URL 中使用这样的符号。

【问题讨论】:

    标签: http url hyperlink dns urlencode


    【解决方案1】:

    非 ASCII 符号 (UTF-8) 被转换为 Punycode(见下文),因此 http://✌.com/ 被转换(编码)为 http://xn--7bi.com/。此域集重定向的所有者(响应状态为 301 Moved Permanently),因此您登陆到https://angel.co/

    Punycode 是一种编码语法,通过它可以将 Unicode (UTF-8) 字符串 字符可以翻译成允许的基本 ASCII 字符 在网络主机名中。 Punycode 用于国际化域名 名称,简称 IDN 或 IDNA(国际化域名在 应用程序)。

    例如,当您在浏览器中输入 cafe.com 时,您的 浏览器(即支持 IDNA 的应用程序)首先将 字符串到punycode“xn--caf-dma.com”,因为字符'é'不是 允许在常规域名中。 Punycode 域不适用于旧版本 浏览器。

    (source of quotation and Punycode encoder/decoder)

    RFC 3490 中描述了这种转换。

    【讨论】:

    • 哇 - 谢谢你的信息。每个符号都转换为不同的域。因此,这完全取决于碰巧拥有该域的人。很有趣。
    【解决方案2】:

    这是不常见的,但并非不可能。浏览器或客户端在发送之前对 URL 进行 URL 编码(也称为百分比编码),以便正确传输特殊字符。

    您可以在此处阅读有关 URL 的更多信息:https://www.rfc-editor.org/rfc/rfc3986

    【讨论】:

      猜你喜欢
      • 2015-10-21
      • 2010-09-21
      • 2014-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-10
      • 1970-01-01
      相关资源
      最近更新 更多