URL中的特殊符号

时间:2013-03-31 11:56:18

标签: http url hyperlink dns urlencode

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

2 个答案:

答案 0 :(得分:2)

非ASCII符号(UTF-8)转换为Punycode(见下文),因此http://✌.com/被转换(编码)为http://xn--7bi.com/。此域设置重定向的所有者(响应状态为301已永久移动),因此您将转到https://angel.co/

  

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

     

例如,当您在浏览器中键入café.com时,您的   浏览器(这是启用IDNA的应用程序)首先转换   字符串to punycode“xn--caf-dma.com”,因为字符'é'不是   允许在常规域名中使用。 Punycode域名不适用于旧版本   浏览器。

(source of quotation and Punycode encoder/decoder)

此转换在RFC 3490

中有所描述

答案 1 :(得分:0)

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

您可以在此处详细了解网址:http://tools.ietf.org/html/rfc3986