需求
直接用IP访问了自己在线上的网站,结果发现被拒绝❓
因为,IP映射的是一整台服务器,而服务器上可以部署的的服务是多种多样的。除了web网站服务,还可能有ftp文件传输服务,mail邮箱服务等。这时仅仅给出IP是不够的,需要在IP后添加端口号
作进一步区分。
当然,如果用浏览器访问的话,只输入IP它也会帮你自动补充80或者443端口,以便访问对应的web服务。自己实际就是用的浏览器,那为啥仍旧不能访问网站呢?因为,自己买的是功能受限的“虚拟主机
”,而非完整的“服务器”。
虚拟主机本质就是“共享主机”,自己其实是在和其他人一起使用一台主机。我在这台主机上部署了网站,别人也可能部署了网站,这时仅靠IP和端口就无法将我们区分开来了。所以虚拟主机就会拒绝只提供IP和端口的访问。
也许有人会觉得IP和端口的组合足够在一台主机上区分不同的web服务了,只要为不同的web服务指定不同端口就行了。但这就意味着将有web服务要放弃使用默认端口(80或443),而客户端的浏览器通常使用默认端口访问web服务,这就会导致那些未使用默认端口的web服务无法被访问到。
基于上述情况,就会发现对于使用了虚拟主机的站长而言,在IP和端口之外再提供第三个标识以便将自己和“室友”区分开来就是必须的,而这第三个标识就是域名
。
这里也同时展现了域名除了作为IP的助记符外的另一个重要作用,即在相同的主机中区分使用了默认端口号的同一类型的不同服务
。
其实除了web服务外,对其他服务的访问也可能面临拒绝IP加端口直接访问的情况。但这不是必须的,如果你购买的是完整的服务器,完全可以实现只用IP加端口访问对应服务的场景,但这种使用方式多少有些浪费,也增加了服务对主机的耦合,不利于将来可能的服务迁移活动。
Web学社