localhost 与 127.0.0.1 的区别

原文地址:http://blog.licess.org/localhost-and-127-0-0-1/


localhost与127.0.0.1的区别是什么?相信有人会说是本地ip,曾有人说,用127.0.0.1比localhost好,能够减小一次解析。看来这个入门问题还有人不清楚,其实这二者是有区别的。mysql

一、linux

localhost也叫local ,正确的解释是:本地服务器sql

127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器)windows

他们的解析经过本机的host文件,windows自动将localhost解析为127.0.0.1服务器

二、网络

localhot(local)是不经网卡传输!linux下,localhost默认是指unix socket,这点很重要,它不受网络防火墙和网卡相关的的限制。dom

127.0.0.1是经过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。socket

本机IP 也是经过网卡传输的,依赖网卡,并受到网络防火墙和网卡相关的限制。tcp

可是本机IP与127.0.0.1的区别是:ide

127.0.0.1 只能经过本机访问

本机IP 经过本机访问也能经过外部访问

通常设置程序时本地服务用localhost是最好的,localhost不会解析成ip,也不会占用网卡、网络资源。

有时候用localhost能够,但用127.0.0.1就不能够的状况就是在于此。猜测localhost访问时,系统带的本机当前用户的权限去访问,而用ip的时候,等于本机是经过网络再去访问本机,用的到网络用户的权限。


Mysql

当主机填写为localhostmysql会采用 unix domain socket链接

当主机填写为127.0.0.1时mysql会采用tcp方式链接