这就是我所做的:
问题:
线索:
这是我没有运气的尝试:
有什么想法吗?这是Windows 7中的一些聪明的“安全功能”吗?为什么Apache不受影响?为什么只有浏览器受到影响?
答案 0 :(得分:4)
出于某种原因,Windows 7需要1秒才能解析地址localhost,无论它是否在主机文件中。
将localhost1添加到hosts文件并使用它来解决问题。
答案 1 :(得分:3)
您可能遇到了一些自动代理发现问题。在Firefox中,您可以在选项|中禁用它高级|网络|设置;选择“无代理”或给它显式值。还有Internet属性控制面板,这是IE的网络设置,但Windows上的其他浏览器也可以遵守此处的设置。同样,禁用自动代理发现。这也可以加速localhost之外的连接。
答案 2 :(得分:3)
如果您说的是“localhost”而不是“127.0.0.1”,那么您在实际连接尝试之前强制进行名称查找,这会增加延迟。
此外,某些浏览器(如Firefox 3.5+)不使用操作系统的DNS查找机制,这就是为什么它可以具有与wget不同的性能。
答案 3 :(得分:1)
在IPv4 / IPv6双栈主机上连接到localhost
时:
localhost
执行DNS查找。AAAA
记录::1
和A
记录127.0.0.1
。::1
。0.0.0.0
而不是[::]
。ECONNREFUSED
错误。 这在大多数平台上都会立即发生;但是,在Windows上,一次调用connect()
会在放弃之前以500毫秒的间隔尝试3次,因此会花费一秒钟多的时间(有关更多详细信息,请参见http://stackoverflow.com/q/19440364)。127.0.0.1
的连接。这将解释您上面的所有线索:
::1
之前,尝试127.0.0.1
大约需要花费一秒钟的时间。INET
套接字,因此根本不会尝试使用::1
。::1
。