前言
hostName,在Linux系统上是一个命令,用来显示和设置系统的主机名称。其实它就是域名。
常见的域名有我们熟悉的taobao.com;baidu.com等等。
我们在地址栏输入baidu.com
进入的就是此页面。我们看到地址栏里显示的是www.baidu.com 。
注意,这是二级域名,我们之后会提到一级和二级
那会不会有一个疑问,为什么我们可以直接访问域名,能不能直接访问ip地址呢?
答案出来了,很明显不行
看了很多的文章解释,无法直接用ip访问大概有一下几点:(摘自https://blog.csdn.net/Fightever_/article/details/130296465)
1.虚拟主机技术
现在很多网站采用虚拟主机技术,即在同一个服务器上托管多个不同的网站,这些网站共享同一个IP地址。此时,访问这些网站需要根据 HTTP 请求中的 Host 头信息来确定具体访问哪个网站,而不是仅仅通过 IP 地址来访问。因此,如果你只输入了 IP 地址,服务器无法确定你具体要访问哪个网站,就会返回错误提示。
2.网站域名与 IP 地址不匹配
有些时候,一个网站可能有多个 IP 地址或者在不同时间段 IP 地址发生变化。如果你使用的是过期的 IP 地址或者错误的 IP 地址,就无法正确访问该网站。
3.防火墙或者路由器设置问题
一些防火墙和路由器可能会针对不安全的 IP 地址或者特定类型的流量进行屏蔽或者过滤,这会导致使用 IP 地址无法访问网站。当然,这种情况下多数情况下可以通过检查网络安全配置来解决。
总结,有些服务器通过检测Host字段防止客户端直接使用IP进行访问,一般的网站会放在虚拟主机,虚拟主机上会放置很多的网站,而每个网站会绑定一个或以上域名。一般用户在访问的时候会有host信息提供给服务器,告诉服务器要访问的域名,从而实现一台主机绑定一个ip,即使有多个网站,也不会互相干扰。但使用ip访问,不知道访问哪个网站,也就无法访问了。
当然我们使用域名最主要的目的还是为了记忆 ,一连串的数字也记不过来,之后再通过DNS解析成对应的ip地址。
本地DNS域名解析
配置文件地址
c盘目录下,C:\Windows\System32\drivers\etc
右键选择一种工具打开,我用的是Nodepad++。
添加一行127.0.0.1 www.boyatop.cn
下面是#127.0.0.1 www.boyatop.cn的情况(注释掉,或者没写这段代码前),可以看出是能够直接访问的。
但是用127.0.0.1 www.boyatop.cn将本机ip与博雅域名绑在一起后
就会无法访问该页面,原因如下
我们想要在浏览器访问一个域名的时候会优先从本机hosts文件中寻找,有就直接返回,没有就联网寻找(也是最常见的情况)。
那很明显这个时候是有的。那为什么运行不了,主要是因为本地没有运行相应的服务,如果我们本地机器上没有运行相应的监听端口的服务(默认80),尝试访问域名是不会有任何响应的。
这时候 我们运行拟运行一个程序,来监听8071端口
controller:
@Controller
public class NginxTest {
/**
* 访问controller实现代理访问
*/
@ResponseBody
@RequestMapping("/getBoyatop")
public String getBoyatop(){
//打印证明接口被访问
System.out.println("接口被访问8081!!");
return "Hello World qcbySpringBootNginx8081!!!!";
}
/**
* 访问controller实现代理访问
*/
@ResponseBody
@RequestMapping("/")
public String getBoyatop01(){
//打印证明接口被访问
System.out.println("接口被访问8071!!");
return "Hello World!";
}
}
启动类:
//声明了一个SpringBoot启动类
@SpringBootApplication
@MapperScan(basePackages = "com.qcby.mapper")
public class NginxApplication {
public static void main(String[] args) {
SpringApplication.run(NginxApplication.class,args);
}
}
properties、yml和pom.xml文件请自行配置
运行启动类
这下就能够访问到了。
JDK中与IP地址相关的类与方法
InetAddress类的常用方法:
一级二级域名
首先一级域名是由字母、拼音或数字等组成的主体部分,再加上域名后缀组成。像baidu.com就是一级域名。 baidu是域名主体,.com是域名后缀。像http://58.com、http://taobao.com 也都是一级域名。
二级域名就是在一级域名前再加一级,比如:一级域名http://baidu.com,http://www.baidu.com就是二级域名,只是人们习惯使用www为前缀的二级域名作为网站的主域名入口,这样更方便大家记忆。
一级域名和二级域名的区别
1. 二级域名是依赖一级域名存在的,打个比方,一级域名没了,那么二级域名也没了。二级域名没了对一级域名没有影响。
2.注册一级域名是需要付费的,而二级域名是基于一级域名延伸出来的,不需要付费。