拆开一个网址,认识那本把名字翻译成 IP 地址的巨型通讯录。
在 Kodokon 中打开本课URL 是一个网络资源的完整地址。和邮政地址一样,它是一段一段读的,从最笼统到最具体:国家、城市、街道、门牌号、楼层。URL 的每一段都有自己的名字和明确的作用,能把它们一一叫出名字,你以后每天都用得上。
https://en.wikipedia.org/wiki/HTML?action=history#History
protocol : https
domain : en.wikipedia.org
path : /wiki/HTML
parameters : ?action=history
fragment : #History协议(https)说明这两台机器接下来要讲哪种语言。域名说明该去找哪台机器。路径指向那台机器上的具体资源,就像在一层层文件夹里往下走。参数以问号开头,用来给服务器传递信息(一个搜索词、一个页码)。片段以井号开头,它根本不会被发给服务器:它只是告诉浏览器该把页面滚动到哪里。
域名本身要从右往左读。在 en.wikipedia.org 里,最右边的 org 是扩展名(也叫顶级域名)。接下来的 wikipedia 是这家机构买下的名字。最后的 en 是一个子域名,所有者可以随意添加,用来指向某台特定的机器或者某项服务。所以 wikipedia.org 和 en.wikipedia.org 属于同一个所有者,而 wikipedia.org.example.net 属于的却是 example.net 的所有者。
问题来了:网络本身只认 IP 地址。所以需要一本通讯录,能把 wikipedia.org 翻译成 185.15.59.224。这本全球通讯录叫做 DNS(Domain Name System,域名系统)。每次访问之前,你的机器都会先去问一台 DNS 服务器,拿到 IP 地址,然后才真正去连那个网站。这个翻译过程,你可以自己动手做一遍。
dig +short wikipedia.org
185.15.59.224curl -s "https://example.com/page___id=12"