新闻资讯

通过域名+端口实现虚拟主机 访问路径可以自定义

2019-05-24

1982年1月11日,22位计算机科学家聚在一起讨论了有关“计算机邮件”(也就是电子邮件)的问题。与会者包括创建了Sun Microsystems公司的家伙,开发了Zork的家伙,发明NTP的家伙,以及说服政府需要为Unix付费的家伙。当时他们讨论的问题其实很简单:ARPANET上已经有455台主机,情况似乎开始有些失控。

顶级域名

『已经完全不可能再需要创建其他顶级域名了。 — John Postel,1994年』

当上文提到的那些牛人们决定应该让域名带有层次结构后,还需要决定这种层次结构的“根”是什么。这个根通常是使用一个“.”代表的。实际上让所有域名以“.”结尾从语义上来说是正确的,并且浏览器绝对支持这种做法:google.com.。

世界上出现的第一个顶级域名(TLD)是.arpa,用户可以借助这个顶级域名在过渡期内对传统的ARPANET主机名进行寻址。举例来说,如果我的计算机之前曾注册为hfnet,那么我的新地址就是hfnet.arpa。但这只是暂时的,在过渡期内服务器管理员需要做一个重要的选择:共五个顶级域名,自己到底要用哪个?“.com”、“.gov”、“.org”、“.edu”,还是“.mil”?

之前说DNS有层次结构时,实际是指需要用到一系列根DNS服务器并让它们承担重要的任务,例如将.com指向.com名称服务器,由后者负责告诉用户如何到达google.com。互联网的根DNS区域由13个DNS服务器集群组成,一共只有13个服务器集群,因为这是一个UDP数据包可以容纳的上限。在历史上DNS是通过UDP数据包运作的,这意味着请求的回应不能超过512字节。

端口

Gopher和HTTP的时间先后也可以从它们各自的默认端口号看出来。Gopher是70,HTTP是80。HTTP端口是在接到Tim Berners-Lee在1990年和1992年之间某个时间提出的请求后分配的(很可能是由IANA的Jon Postel负责分配)。

这种“注册端口号”的概念诞生时间甚至早于互联网。在最初用于驱动ARPANET的NCP协议中,远程地址是通过40比特数值识别的。其中前32比特用于确定远程主机,这一点类似于目前的IP地址。后面8比特则是AEN(代表“Another Eight-bit Number”),远程计算机将其用于类似今天端口号的作用,借此可以区分发给不同进程的信息。换句话说,地址决定了信息要发给哪台计算机,AEN(或端口号)可以告诉远程计算机要将这条信息交给哪个应用程序。

为了限制可能产生的冲突,他们很快就要求用户注册这些“套接字(Socket)编号”。当TCP/IP将端口号扩展为16比特之后依然需要进行这这样的注册。

虽然每个协议都有默认端口,但为了方便本地开发和在同一台计算机上托管多个服务,依然有必要允许用户手工指定要使用的端口。给网站使用www. 前缀的基本依据也是基于相同的逻辑。当时几乎没有人可以访问自己域名的根,只能托管“实验性”的网站。但如果你告诉别人自己某一计算机的主机名(例如dx3.cern.ch),如果要更换计算机将会造成不小的麻烦。通过使用通用子域(例如www.cern.ch ),就可以在需要时更改该子域指向的计算机。

通过域名+端口实现虚拟主机 访问路径你自定义

花生壳动态域名解析服务是目前使用用户较多的动态域名解析服务,为千万用户提供动态域名解析服务,并广泛应用于网站建设、视频监控、遥感测绘、FTP、VPN、企业OA、ERP等应用领域。花生壳动态域名解析服务可以将您的动态公网IP和域名进行实时绑定,通过域名+端口实现虚拟主机,访问路径你自定义。