127.0.0.1和localhost的区别

    今天配置了一个web服务,测试时发现localhost:2002能访问而127.0.0.1:2002不能访问,域名加端口号更不能访问。头大了半天。以前没细想过二者的区别,总以为它们是通用的表示本地服务器的两个不同的写法而已,就好比一个网页可以通过域名来访问也可以通过IP来访问一样,localhost代表的是域名,而127.0.0.1则代表IP地址。

    通过查资料才发现二者还是有区别的。二者的概念和工作原理是不同的:

  • localhost:也叫local ,正确的解释是:本地服务器
  • 127.0.0.1:在windows等系统的正确解释是:本机地址(本机服务器)

        一个是“本地”,一个是“本机”。不过从这两个词来看,还是不能比较两者的区别。我们再看看他们的工作原理。

  • localhot:是不经网卡传输的,它不受网络防火墙和网卡相关的的限制。
  • 127.0.0.1:是通过网卡传输的,它依赖网卡,并受到网络防火墙和网卡相关的限制。

        通过上述概念和工作原理的比较,知道localhost与127.0.0.1有什么不同了。文中开头提到的localhost能访问但127.0.0.1不可以访问的问题,究其原因,很可能是localhost访问时,并没有通过网卡,而用ip的时候,是通过网卡传输的,它依赖网卡,并受到网络防火墙和网卡相关的限制,涉及到网络用户的权限。而我测试用的2002端口受防火墙的限制了所以访问不到,改成不受限的端口号问题就解决了。

        另外,现在也明白了一个道理,那就是一般设置程序时本地服务用localhost是最好的,localhost不会解析成IP,也不会占用网卡、网络资源。

 

转载于:https://my.oschina.net/u/267603/blog/1589634

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值