专栏名称: 程序猿
本微信公众号:imkuqin,为程序员提供最新最全的编程学习资料的查询。目前已经开通PHP、C/C++函数库、.NET Framework类库、J2SE API查询功能。
目录
相关文章推荐
阿里云云栖号  ·  一周AI大事件 ·  昨天  
蚂蚁技术AntTech  ·  蚂蚁交互智能实验室21篇论文入选CVPR2025 ·  昨天  
程序员的那些事  ·  趣图:当我准备修改 Web 服务器配置文件的时候 ·  4 天前  
程序员的那些事  ·  突发!TP-Link ... ·  4 天前  
51好读  ›  专栏  ›  程序猿

localhost vs 127.0.0.1

程序猿  · 公众号  · 程序员  · 2017-01-19 22:49

正文

请到「今天看啥」查看全文



有了loopback 地址, 同一个计算机上的进程通信都很方便了, 根本不用走实际的物理网卡。


比如说你在本机建立了一个Web服务器,然后通过浏览器用http://127.0.0.1:8080 去访问, 操作系统内的网络协议栈会把这个HTTP GET请求封装到一个TCP包中,写上目的端口号8080,  然后再封装到一个IP包中, 写上目的地址127.0.0.1 。

但是这个IP数据包并不会发送到物理的网卡那里去,更不会通过数据链路层发送到局域网乃至互联网中, 实际上它发给了虚拟的网络接口, 然后立刻被looped back到IP层的输入队列中。

IP层收到数据包,交付给TCP层, TCP层发现目的端口是8080, 就会把GET请求取出来,交付给绑定8080端口的Web服务器。

在Unix 和 Linux系统中, 通过把loopback 接口命名为 lo 或者 lo0  (注意第一个字母是L的小写字母,不是数字一)

至于localhost , 这就是个本机的主机名, 在大多数机器上, 这个主机名都会被计算机操作系统映射到127.0.0.1 (ipv4)或者::1 (ipv6) ,    那使用localhost 和ip 实际上一样了。

127.0.0.1 localhost
::1 localhost
当然你可以手工的修改hosts 文件来改变这种默认映射 (实际上很少人这么干)。

Windows的hosts 文件位置:
%SystemRoot%\System32\drivers\etc\hosts






请到「今天看啥」查看全文