单个 URL 中的域名是什么,例如以下假设的示例?
http://example.com/google.com/?q=http://example.net&#id=http://example.org&
http://google.com.example.com/file.example.com#666
第二个例子与网络钓鱼诈骗类似,外行人可能会对此产生误解。浏览器知道一个域名与其他域名之间的区别;我没有测试过,但我没有看到浏览器对安全 URL 产生错误判断。一个域名是 DNS 服务器查找 IP 以将 URL 发送到托管它的服务器的域名;DNS 会忽略其他域名,以便路由到正确的 IP 地址。这可能定义了差异,但这不是一个方便的命名方案。
答案1
URL 被分成几个部分。假设语法如下:
scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]
除此之外,我通常将主机分为域和子域,但我不确定这是否是任何官方命名方案。
这样,您可以将示例分为以下几个部分:
http://example.com/google.com/?q=http://example.net&#id=http://example.org&
- 方案:
http
- 主持人:
example.com.
- 领域:
example.com.
- 小路:
google.com
- 询问:
q=http://example.net&
- 分段:
id=http://example.org&
http://google.com.example.com/file.example.com#666
- 方案:
http
- 主持人:
google.com.example.com.
- 领域:
example.com.
- 子域名:
google.com
- 小路:
file.example.com
- 分段:
666
对于 DNS,仅使用主机。然后,您向服务器传达路径和查询。您的浏览器会处理该片段,将您滚动到正确的页面或显示或隐藏内容。
在上面的例子中,请注意某些域名后面的点。这意味着它们是域名的结尾,或 TLD(顶级域名)。子域名没有这个,因为它们不是完整的引用。您也可以在 DNS 记录中看到这一点:
demo.example.com. 3600 IN A 12.34.56.78
localhost 3600 IN A 127.0.0.1
www 3600 IN CNAME demo.example.com.
ftp 3600 IN A 12.34.56.78
这些 DNS 记录将产生以下主机:
- demo.example.com,解析为 12.34.56.78
- localhost.example.com,解析为 127.0.0.1
- www.example.com,解析为 demo.example.com,后者解析为 12.34.56.78
- ftp.example.com,解析为 12.34.56.78