1

当您输入 www.google.com 等地址时,发送到的 http 请求是 173.194.75.147 port:80。

两个问题

1>是浏览器还是操作系统联系DNS服务解析173.194.75.147?

2> 浏览器是否知道默认目标端口为 80?

4

2 回答 2

2

浏览器让操作系统进行名称查找。例如,在 Windows 7 中,C:\Windows\System32\drivers\etc\hosts首先查询文件,然后是 DNS 服务器。在 Linux 中,首先查询 FreeBSD 等,/etc/hosts然后是/etc/resolv.conf.

当您的 URL 以 http 协议为目标时,destination-port=80 是默认值,当协议是 https 等时,destination-port=443 是默认值。根据标准,这是由您的浏览器“决定”的。

于 2012-11-25T19:29:58.013 回答
2

查询由操作系统运行的 inet 服务运行。可以将主机设置为首先被查询,然后是 DNS 服务器,但并非总是如此。在 UNIX 服务器上,/etc/nsswitch.conf 文件定义了解析顺序。

默认情况下,浏览器设置为在端口 80 上查询。您可以通过在完整 URL 后放置一个“:”和另一个数字来修改此行为以修改行为。

nslookup您可以使用该命令进行自己的 DNS 解析。

要在“较低”级别查看类似行为,请在命令行上稍微使用 cURL。您会看到不使用浏览器就可以解析 URL。您还将看到 HTTP 请求默认使用的端口 80。

于 2012-11-25T19:35:05.537 回答