0

我想消费一个在本地机器上运行的web服务(不要问我为什么,我没有做web服务,只是需要使用它),我想知道有什么不同(技术可能还有性能)通过 localhost、127.0.0.1、计算机名称和计算机静态 IP 引用它?这很关键,因为我几乎每 30 秒都需要从数据库内的表触发器中使用 Web 服务(同样,不要问我为什么,在这种情况下我只能这样做)。Web 服务是用 ASP.NET 编写的,从数据库中访问它的对象是 C#.NET 中的 CLR 用户定义函数

编辑:对不起,30 秒的估计很差。这是一个交易表,其中近百家商店的销售额在线保存。它的时间段是可变的,从交易之间的几分钟到几毫秒。

4

5 回答 5

3

与“实时”相比,30 秒确实很长,因此您使用的 IP 没有任何区别,并且对您的应用程序是透明的。

于 2012-06-14T22:25:24.400 回答
1

没有真正的性能影响,但最快的应该是 127.0.0.1 和静态 IP,因为无需在主机文件或 DNS 上进行查找。既然你有一个 30 秒的窗口,那真的没关系。

于 2012-06-14T22:23:03.323 回答
1

它们是有区别的。

虽然所有四个权限名称都会导致与同一主机建立 TCP 连接,但区别在于 HTTP:HTTP 具有浏览器或客户端发送的“Host:”标头,此标头的内容是 URI 的主机名部分权威名称。

Host 标头很重要,因为它是像 IIS 这样的网络服务器如何将请求路由到正确的网站,即使多个网站共享一个 IP 地址(HTTP1.1 有 Host 标头,HTTP1.0 没有,所以早在 1990 年代中期,每个网站都需要自己的 IP 地址)。

如果您的 Web 服务在使用 Host 标头的服务器上运行,或者它本身使用 Host 标头,那么这很重要。

性能方面的差异可以忽略不计,因为“localhost”和“%computername%”应该永久存储在您的 DNS 客户端的缓存中,但避免在应用程序中硬编码主机名是常识。

于 2012-06-14T22:25:03.060 回答
1

这取决于 Web 服务的暴露位置(监听)。

localhost并将127.0.0.1在内部 localhost 界面上与其联系。其他两种方法将在特定网卡上查找服务。

从性能的角度来看,使用 IP 地址要快一点,因为它避免了 DNS 查找,但是在这种情况下,DNS 查找将在本地解析并且几乎是即时的。(30 秒是相对无限的,所以这不能成为瓶颈。)

从维护的角度来看,静态 IP 地址最有可能咬你。

获胜者:127.0.0.1localhost

于 2012-06-14T22:30:23.993 回答
0

没有真正的区别,但是它们都将转换为 127.0.0.1,因此您不妨先提供它。

如果您检查您的主机文件,您可以看到 localhost 直接转换为 127.0.0.1

于 2012-06-14T22:25:04.990 回答