【问题标题】:localhost vs real ip address本地主机与真实IP地址
【发布时间】:2011-10-19 18:20:07
【问题描述】:

localhost和真实ip地址有什么区别?

如果我使用http://localhost:8080/index.htmlhttp://192.123.456.001:8080/index.html访问应用程序(例如192.123.456.001是主机的真实IP地址),有什么区别?

【问题讨论】:

  • 192.123.456.001 不是真实的 IP 地址 :-)

标签: tcp


【解决方案1】:

当您访问localhost 时,您的/etc/hosts 文件将告诉您的计算机不要再查看并将您重定向到您自己的计算机。当您访问本地 IP 地址时,您的计算机会要求路由器获取数据,然后您的路由器将指向您的计算机。

【讨论】:

  • 我认为一些现代系统可以识别他们正在与之交谈的外部 IP 地址是否是他们自己的,并且不会费心将流量往返传输到网络,但我不记得顶部在我的脑海中,哪些人会这样做,或者对此是否有任何限制。
【解决方案2】:

除了其他答案之外,您在使用 localhost 时可能会遇到神秘问题。

一个例子:如果你在 URL 栏中输入http://localhost,Windows 上的 IE 会创建一个快捷方式。当您正在开发 Web 应用程序并安装了本地代理(例如 Fiddler)以查看在客户端网页和本地运行的服务器之间传递的消息时,这将成为一个问题 - 消息不会被捕获,因为它不会通过在这种情况下的代理。这使得在您的应用程序中查找仅限 IE 的错误有点不方便...... ;-)

【讨论】:

    【解决方案3】:

    来自维基百科,相关点:

    以相同的方式与环回接口通信 与网络上的另一台计算机,但绕过本地网络 接口硬件,对于测试软件很有用。

    连接到本地托管的网络服务,例如电脑游戏 服务器或其他进程间通信,可以执行 以高效的方式通过环回地址。

    http://en.wikipedia.org/wiki/Localhost

    【讨论】:

    • 虽然,很高兴知道如何这是“一种高效的方式”。程序员不考虑服务器地址是否有效?服务器不必查找地址在哪里是否有效?两个都?我认为这就是原始海报所要求的。
    • @Skotte 网络遵循 OSI 7 层模型,运行环回允许操作系统通过跳过层来优化事物。在现代操作系统和 TCP/IP 上,差异应该与本地路由表中的查找一样小。
    【解决方案4】:

    不同之处在于,当你设置一个监听套接字(等待连接)时,你必须告诉它要绑定到哪个地址。这同样适用于所有常见 Web 服务器的网站配置。

    通常您只会绑定到任何地址,这意味着您可以通过 127.0.0.1 或 192.x.x.x 或机器碰巧拥有的任何其他 IP 地址访问它,但有时您可能希望绑定到特定地址 - 例如如果您在一台机器上有 4 个公共 IP,您可能希望在特定 IP 上拥有一个特定站点。

    【讨论】:

      猜你喜欢
      • 2014-12-19
      • 1970-01-01
      • 2013-03-10
      • 2020-12-10
      • 2014-06-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-13
      • 2012-04-12
      相关资源
      最近更新 更多