域名绑定与ip地址访问是不是无本质区别
之前注册了一个VPS,并在上面搭建了相应的LNMP环境(一键安装包),随后搭建了WordPress。
直接通过IP地址访问,访问的是类似“LNMP安装成功”的页面。
随后注册了一个域名,将域名和IP地址绑定之后,成功通过注册的域名访问WordPress搭建的个人博客。
我的疑问是
,据我所知,域名不过是通过DNS服务器转换为相应的IP地址,那么
我访问这个域名和VPS的IP地址是一样的
,对吗?但是事实并非如此,IP地址还是那个“LNMP安装成功”,而域名访问的是博客地址,这是为什么?
【简而言之,假设绑定a.com和1.1.1.1,那么通过web浏览器访问这两个地址不应该是别无二致的吗】
其次,我们在地址栏输入一个IP地址,事实上是默认访问了80端口而已,只是隐藏了,是这样吗?
麻烦了!
Answers
当你使用
域名
去访问一个网站的时候,
HTTP请求头
中的
Host
字段的值为 你所填写的域名.
当你直接使用这个域名解析出来的
IP地址
, 去访问这个网站的时候,
HTTP请求头
中的
Host
字段的值为 IP地址.
GET / HTTP/1.1
Host: localhost
GET / HTTP/1.1
Host: 127.0.0.1
这个是在
HTTP请求头
上的区别, 在浏览器发请求之前, 如果是域名需要先解析域名得到IP然后才建立连接, 如果是IP, 则直接就可以建立连接.
当请求到达
Web服务器
的时候, 服务器会根据你的
HTTP请求头
中
Host
字段中的内容去匹配相应的配置, 比如你提交的是 域名, 而且 配置项里有这一个域名的配置, 那么它就会根据这个配置去进行处理(比如展示你的博客).
当提交的
Host
的内容在配置项里没有的时候, 在这种情况下, 一般服务器里会有一个默认配置项, 服务器展示这个默认配置项所对应的内容(即你所描述的那个 “LNMP安装成功”).
你问的 "其次" 的那个问题的答案是:
是的
, 如果是用的
HTTP协议
则默认端口为
80
, 如果是
HTTPS协议
则默认端口为
443
.