Url
How
中文域名会如何编码?为什么会出现 xn--
的字样?
中文网址编码是一种将中文域名转换为英文域名的方法,它使用了一种叫做 Punycode 的算法。Punycode 是一种将 Unicode 字符串编码为 ASCII 字符串的方式,它使用了 xn— 前缀和一些数字和字母来表示原始的 Unicode 字符串,因为 DNS 不支持 Unicode。例如,中文网址 编码.com
的 Punycode 编码是 xn–fiqz59cpva341l.com
。这样做的目的是为了让不支持 Unicode 的浏览器和服务器能够识别和访问中文域名 1 encoding chinese
more via: https://github.com/mingyun/mingyun.github.io/blob/master/Characterencoding.html
What
URL 的构造?
URL 由几个部分组成,这些部分一起定义了资源的地址和用于访问它的协议。让我们解析下面的 URL 作为例子
https://example.logto.io:8080/blogs/index.html?param1=value1¶m2=value2#introduction
- Scheme: 指定了用于访问资源的协议或方案,如 HTTP (超文本传输协议)、HTTPS (安全的 HTTP )、FTP (文件传输协议)或 其他。
- 此 URL 中的 scheme 是
https
。
- 此 URL 中的 scheme 是
- Host: 主机指定了托管资源的服务器的域名或 IP 地址。
- 此 URL 中的 host 是 example.logto.io。
- Port: (可选)端口表示在主机上访问资源的特定端口号。如果没有指定端口,它默认为给定方案的标准端口。
- HTTP 的默认端口是 80 ,而 HTTPS 的默认端口是 443 。
- 此 URL 中的 port 是
8080
。
- Path: (可选)路径指示服务器上资源所在的特定位置或目录,可以包括目录和文件名。
- 此 URL 中的 path 应为
/blogs/index.html
。
- 此 URL 中的 path 应为
- Query parameters: (可选)查询参数是传递给资源的额外参数,通常用于动态网络应用。它们出现在路径之后,由
?
符号分隔。- 此 URL 中的 query parameters 是
params1=value1¶m2=value2
,通常以键值对的形式表示,对之间由&
符号分隔。在实际使用场景中,通常需要编码以避免空格等字符。
- 此 URL 中的 query parameters 是
- Fragment identifier: (可选)它也可以被称为锚,用于定位资源中的特定位置。
- 此 URL 中的锚是
#introduction
。 - 此外,使用文件服务或许多网页上的 ” 联系我们 ” 按钮都链接到 URL ,例如:
- ftp://documents.logto.io/files/legal/soc_ii.pdf
- mailto:contact@logto.io?subject=Enterprise%20quota%20request
- 此 URL 中的锚是
via: https://www.v2ex.com/t/1050461