使用localhost,127.0.0.1,计算机名和静态IP的区别

时间:2012-06-14 22:20:30

标签: c# asp.net web-services sqlclr

我想要使用在本地计算机上运行的Web服务(不要问我原因,我没有提供Web服务,只需要使用它),我想知道是否有任何差异(技术和性能)通过localhost,127.0.0.1,计算机名称和计算机静态IP引用它?这很关键,因为我需要几乎每30秒从数据库中的表触发器中使用Web服务(再次,不要问我为什么,在这种情况下我只能这样做)。 Web服务是用ASP.NET编写的,从数据库访问它的对象是用C#.NET创建的CLR用户定义函数

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

5 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

有区别。

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

主机标头很重要,因为即使多个网站共享一个IP地址,HTTP网络服务器也会像IIS一样向正确的网站发送请求(HTTP1.1具有主机标头,HTTP1.0没有,所以早在20世纪90年代中期)每个网站都需要自己的IP地址。)

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

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

答案 3 :(得分:1)

这取决于Web服务的公开位置(监听)。

localhost127.0.0.1将在内部localhost接口上与其联系。另外两种方法将在特定网卡上查找服务。

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

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

获奖者:127.0.0.1localhost

答案 4 :(得分:0)

没有真正的区别,但是它们都会转换为127.0.0.1,所以你也可以先提供。

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