情景描述
- 有很多能够代替本机的地址比如:127.0.0.1、localhost、本机IP、以及0.0.0.0他们之前有什么区别呢
- 本想使用webpacl-dev-server启动一个静态服务器,发现可以设置端口号
- 发现大家将服务器监听的host设置成了0.0.0.0
- 表示很疑惑,这是什么host 为什么不设置成我熟悉的127.0.0.1?他也代表的是本机IP吗?
问题解答
- Q1:你的本机可为什么可以有这么多个IP
- A1: 可以假象本机上有个IP池,其中不同的IP代表本机在不同网络中的IP。比如:
- 127.0.0.1:代表本机在虚拟网络中的IP
- 本机IP10.205.20.2:代表本机在局域网中的IP
- 到现在为止,本机已经在不同的两种网络中有两种IP了
- Q2:那么0.0.0.0是那个网络上的IP呢?
- A2:0.0.0.0很特殊,他代表本机在所有网络中的IP这样解释吧:如果你让服务器监听着0.0.0.0域名,服务器就会监听所有本机IP池中的IP
- Q3:那么为什么服务器不启动在127.0.0.1ip上呢?
- A3:简单的说如果服务器监听着127.0.0.1的1337端口:
- 当你访问10.205.20.2:1337 意味着一个请求发送到了10.205.20.2:1337的位置,自然没有服务器处理这个请求。
- 当你访问127.0.0.1:1337 就是一个请求发到了127.0.0.1:1337,正好被服务器捕获被处理
- Q4:那么如何做到请求不论发送到本机的任何一个IP都会被服务器处理呢?
- A4:按照想法走就是:让服务器监听这本机的所有IP。正好有0.0.0.0端口,代表着本机的所有IP.你将服务器启动在0.0.0.0上,让服务器监听这本机上的所有IP,这样不论发往那一个IP的请求都可以被这个服务器处理了。
- Q5:最后一个最简单的问题localhost和127.0.0.1有啥区别
- A5:两个是一样,localhost是127.0.0.1的域名。怎么证明呢?去ping一下吧~
网友评论