【发布时间】:2013-03-21 16:22:56
【问题描述】:
我刚刚看到 AngelList 的这个 URL - http://✌.com/。它有一个奇怪的符号,它重定向到https://angel.co/。有人知道这是如何工作的吗?我不认为你可以在 URL 中使用这样的符号。
【问题讨论】:
标签: http url hyperlink dns urlencode
我刚刚看到 AngelList 的这个 URL - http://✌.com/。它有一个奇怪的符号,它重定向到https://angel.co/。有人知道这是如何工作的吗?我不认为你可以在 URL 中使用这样的符号。
【问题讨论】:
标签: http url hyperlink dns urlencode
非 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 中描述了这种转换。
【讨论】:
这是不常见的,但并非不可能。浏览器或客户端在发送之前对 URL 进行 URL 编码(也称为百分比编码),以便正确传输特殊字符。
您可以在此处阅读有关 URL 的更多信息:https://www.rfc-editor.org/rfc/rfc3986
【讨论】: