关于使用pycharm启动服务器时的问题

背景:

        一开始做前后端交互时,是直接在pycharm的终端上运行指令

Python manage.py runserver 0.0.0.0:8000

使服务器开在这个ip地址上,被前端访问到项目。但是每次我都是使用pycharm启动一次项目,又用终端使用这个命令启动一次项目,之前一直云里雾里也没有管,今天使用终端启动时报错大概意思是没有Django这个模块,我才真正重视起了这里面的知识点,当然以下学习到的知识点跟报错没有任何关系(我猜测报错只是因为系统在终端启动时Django没有被加载出来,因为我用pycharm启动的时候是可以正常启动的,还能在Postman上面发送请求)

        以下用作整理知识点,巩固知识

0.0.0.0、localhost、127.0.0.1

共同点

  1. 都属于特殊地址。
  2. 都属于A类地址。
  3. 都是IPV4地址。

不同点

0.0.0.0    

严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。
  它表示的是这样一个集合:
  1、所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。
  2、对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一 律送进去。
  3、如果在网络设置中设置了缺省网关,那么Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。

也就是说0.0.0.0就是表示所有的IP地址.
比如一个tomcat配置文件中,如果监听的IP地址设置了 0.0.0.0 就表示你的这个tomcat服务器监听在本机的所有IP地址上,通过任何一个IP地址都可以访问到tomcat.
如果本地的IP地址有 192.168.1.10, 172.16.2.10,那么访问你这个tomcat http://192.168.1.10:8080/ http://172.16.2.10:8080/ 都可以访问

另外,0.0.0.0是不能被ping通

用途:

  • 用作服务端,表示本机上的任意IPV4地址。

127.0.0.1

首先我们要先知道一个概念,凡是以127开头的IP地址,都是回环地址,其所在的回环接口一般被理解为虚拟网卡,并不是真正的路由器接口。

所谓的回环地址,通俗的讲,就是我们在主机上发送给127开头的IP地址的数据包会被发送的主机自己接收,根本传不出去,外部设备也无法通过回环地址访问到本机。

最后127.0.0.1属于{127,}集合中的一个,而所有网络号为127的地址都被称之为回环地址,所以回环地址!=127.0.0.1,它们是包含关系,即回环地址包含127.0.0.1。

用途

  • 回环测试,通过使用ping 127.0.0.1 测试某台机器上的网络设备,操作系统或者TCP/IP实现是否工作正常。
  • DDos攻击防御:网站收到DDos攻击之后,将域名A记录到127.0.0.1,即让攻击者自己攻击自己。
  • 大部分Web容器测试的时候绑定的本机地址。

localhost

相比127.0.0.1,localhost具有更多的意义。localhost是个域名,而不是一个ip地址。之所以我们经常把localhost与127.0.0.1认为是同一个是因为我们使用的大多数电脑上都讲localhost指向了127.0.0.1这个地址。

但是localhost的意义并不局限于127.0.0.1。

localhost是一个域名,用于指代this computer或者this host,可以用它来获取运行在本机上的网络服务。

在大多数系统中,localhost被指向了IPV4的127.0.0.1和IPV6的::1。

127.0.0.1    localhost
​
::1          localhost

所以,在使用的时候要注意确认IPV4还是IPV6(IPv4和IPv6是不同类型的IP地址。它们的主要用途相同,标记不同的用户,并且让用户能通过IP进行通信。主要区别在于IPv6是最新一代的IP地址。)

总结

127.0.0.1 是一个环回地址。并不表示“本机”。0.0.0.0才是真正表示“本网络中的本机”。

在实际应用中,一般我们在服务端绑定端口的时候可以选择绑定到0.0.0.0,这样我的服务访问方就可以通过我的多个ip地址访问我的服务。

比如我有一台服务器,一个外放地址A,一个内网地址B,如果我绑定的端口指定了0.0.0.0,那么通过内网地址或外网地址都可以访问我的应用。但是如果我之绑定了内网地址,那么通过外网地址就不能访问。 所以如果绑定0.0.0.0,也有一定安全隐患,对于只需要内网访问的服务,可以只绑定内网地址。

另外,使用pycharm启动项目与使用pycharm的终端启动项目都是一样的启动项目,只不过pycharm启动项目时默认本地,将项目启动在127.0.0.1上,这样别人访问不了我们的项目,所以如果使用终端将项目启动到0.0.0.0前端就可以访问了,但如果在pycharm的设置中把ip的localhost改为我们本机的ip,这样不需要使用终端启动,直接用pycharm启动,前端也可以访问到我们的项目

  • 38
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值