localhost代表什么,域名,IP和Mac地址之间的区别

通俗易懂,告诉你localhost的秘密

很多做Javaweb的同学都知道,当你通过eclipse或者idea启动你的web项目后,程序会自动呼出一个浏览器,浏览器地址栏的网址就是 http://localhost:8080/你的项目名称,一开始学的时候,你可能还不太懂,localhost是什么,8080又是什么,你可能只知道后面那个项目名是你自己写的,前面一长串,都不太懂是什么意思。

首先咱们从Tom猫(Tomcat)说起,当你需要用Java去开发一个web项目的时候,第一件事情就是去搭建自己的环境,只有环境搭建好了,后面的开发才是有意义的,环境搭建是web开发的先决条件。如果是搭建动态web(Dynamic Web Project)项目,那你需要做的就是jar包的引入,编码格式的设置,jdk,Tomcat,数据库等的配置,如果是Maven构建的项目,那就是pom文件的正确编写,同样和动态web一样,需要其他的一些配置。

你需要知道,最后你的项目是要运行在Tomcat服务器上的,所以,当你配置完后,你需要测试你的Tomcat是否可用,就是在Tomcat的bin路径下,启动Tomcat,然后在浏览器去通过localhost:8080去访问,如果你的Tomcat配置成功并正常启动了,那就能看到一个页面,也就是Tomcat的官网。

这里的localhost被称为域名,他代表的就是你的这台计算机,8080是端口号(端口号是可以修改的,就是在不影响别的进程的情况下,你可以修改某一程序的端口号,8080修改为8081完全没问题的),也就是Tomcat这个程序的一个标识,http://localhost:8080/ 就表示访问你本机上端口号为8080的程序,也就是访问你本机的Tomcat,那后面的项目名是什么意思,这很好解释了,你都通过http://localhost:8080/访问到了你本机的Tomcat了,后面的项目名就是访问Tomcat上面运行的这个项目,因为你开发的项目就是在这个Tomcat上运行的。

那可能有的同学就会问,我用127.0.0.1去替换掉localhost,同样可以在浏览器正常访问到我的项目,那localhost和127.0.0.1有什么关系,localhost是域名,那127.0.0.1又是什么。

localhost是域名没错,127.0.0.1就是人们通常说的ip地址,那为什么你通过127.0.0.1也可以正常访问,那是因为在你的电脑的 C:\Windows\System32\Drivers\etc下的hosts文件中,做了映射,让localhost指向了127.0.0.1,这就是原因,所以你在浏览器通过这两种方式都可以访问。

那既然有ip地址,为什么还要发明域名呢?那是因为IP地址都是数字组成的,不方便人们记忆,域名是按照一定的规则设置的方便人们记忆的计算机的名字。那域名又是如何访问计算机的,这就需要使用域名去和IP地址做映射,这中间是通过DNS(Domain Name System)域名解析服务器做的域名的解析,他会把你在浏览器输入的网址,解析成对应的IP地址,因为每台计算机的IP地址都是唯一的,通过这样的解析,你就能去访问对应计算机上面的资源。

百度的网址www.baidu.com就是一个域名,他对应的IP你可以通过打开cmd,也就是win+R,然后输入ping www.baidu.com 进行查看,这个方法也可以检测你的网络状态,假如你要访问哪台计算机,你可以通过ping命令去检测,看是否能够正常访问。

有的同学是不是还有一个疑问,什么疑问呢,就是Mac地址的问题,Mac地址是和网卡绑定在一起,每台计算机出厂后都有唯一的网卡,也就有唯一的Mac地址与之对应。那既然有Mac地址已经可以唯一确定一台计算机了,为什么还要发明IP地址(逻辑地址),我认为,可能是因为IP地址可以做的事情Mac地址做不了,或者做不好。

IP地址是可以路由的,数据在网络中传递的过程中,IP可以通过路由记录数据的传输路径,而Mac地址不能,他没有这个能力,IP地址可以根据需求进行修改,但是Mac地址不能(现在好像也可以修改),通过IP可以进行子网划分,进而构建超网,但是Mac地址不能。在我看来,Mac地址只是在网络中或者现实中唯一确定计算机的一个标识。如果你用IP唯一确定一台计算机那是不可取的,因为IP是可以随时修改的,IP并不能唯一的标识一台计算机。

### 查看本地电脑上后端服务运行的IP地址 要查看本地电脑上后端服务运行的IP地址,可以按照以下方式操作: #### 方法一:通过命令行工具 在Windows或Linux系统中,可以通过`ifconfig`(适用于Unix/Linux/macOS)或者`ipconfig`(适用于Windows)命令来获取本机的IP地址。 对于Linux/Mac环境: ```bash ifconfig ``` 对于Windows环境: ```cmd ipconfig ``` 上述命令会返回网络接口的相关信息,其中IPv4地址即为所需的本地IP地址[^2]。 #### 方法二:检查后端服务启动日志 当后端服务启动时,通常会在控制台打印出监听的IP地址端口号。例如,在Node.js环境中运行`node app.js`之后,可能会看到类似如下的输出: ```plaintext Server is running at http://192.168.1.11:3000/ ``` 这里的`192.168.1.11`即是本地IP地址,而`:3000`表示服务正在监听的端口[^5]。 需要注意的是,某些情况下,默认绑定的可能是`localhost`或`127.0.0.1`,这仅允许在同一设备上的浏览器或其他客户端访问该服务。为了使外部设备能够访问此服务,应确保后端程序绑定了所有可用的网络接口(通常是`0.0.0.0`)。例如,在Express框架下可这样设置: ```javascript const express = require('express'); const app = express(); app.listen(3000, '0.0.0.0', () => { console.log('Server started on port 3000 and all interfaces.'); }); ``` 另外,微信小程序调用本地后端服务时,必须使用实际的IP地址而非域名,并且URL前缀需为`http://`而不是`https://`,因为大多数自签名证书不会被认可[^1]。同时确认使用的端口不是受限范围内的端口,建议采用标准HTTP端口80以减少兼容性问题[^3]。 #### 方法三:借助HTML页面动态获取 如果希望更直观地了解当前机器对外暴露的公网IP地址,可以在简单的HTML网页里嵌入脚本来请求特定的服务API完成这一目标。下面是一个例子展示怎样利用JavaScript去取得用户的公共IP地址并显示出来: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Get Public IP</title> </head> <body> <script type="text/javascript"> fetch('https://api.ipify.org?format=json') .then(response => response.json()) .then(data => document.write(`Your public IP address is ${data.ip}`)); </script> </body> </html> ``` 不过这种方法得到的是外网可见的IP,可能与局域网内部通讯所依赖的那个不同[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值