說出來你可能不信,幾乎所有人每天都在使用一項上古技術,但根本不知道它的存在——沒有它,你連百度都打不開。我說的不是 WiFi,也不是 5G,而是域名系統,DNS。今天這篇文章,完全是被“忽悠”出來的。我被一群同事連哄帶騙,最后硬著頭皮答應寫一篇 DNS 的普及文章。一開始我滿腦子都是:“為什么是我?這種事不可以找別人嗎?”但研究完、寫完,我居然回過頭想感謝那幫“忽悠”我的人。因為在這個過程中,我像拼圖一樣把碎片知識拼了起來,終于弄明白了一件事——每次打開網站,究竟發生了什么。
如果你也聽過“DNS”這個詞,但一直沒搞懂它到底在折騰什么,那這篇文章就是為你準備的。接下來,我會用一種帶點吐槽和犀利的方式,把 DNS 拎出來拆成幾條講清楚。
一、DNS 就是互聯網的電話本。想象一下你要去朋友家。你記住的是朋友的名字,而不是他的 GPS 坐標。于是你打開手機地圖,輸入名字,手機會自己算出路線。互聯網幾乎是一模一樣的邏輯。DNS 的全稱是 Domain Name System,我們叫它域名系統。說穿了,它就是互聯網的電話本——或者說聯系人應用。你不用記憶“142.250.190.78”這種數字 IP 地址,只要在瀏覽器里敲進“google.com”,DNS 就會把這個你容易記住的名字,翻譯成機器之間用來相互尋找的數字地址。如果沒有 DNS,我們每個人每天就得背一大串數字,才能上 Google、刷 GitHub、看 YouTube、躺在沙發上看 Netflix。沒有人愿意過那種日子,真的。
二、按下回車鍵的毫秒級大戲。你在瀏覽器地址欄輸入“github.com”然后回車。接下來發生的事,劇本之復雜,堪比一部微縮的諜戰片:第一步,瀏覽器發出靈魂拷問:“github.com 的 IP 地址是什么?”第二步,它先查 DNS 解析器,看答案是不是已經在緩存里存著了。如果緩存里沒有,第三步就啟動——解析器開始問別的 DNS 服務器,一級一級往下問,直到查到正確的 IP 地址。第四步,那個 IP 地址被送回瀏覽器。第五步,瀏覽器用這個地址連接到 GitHub 的服務器,加載出網頁。這整段操作,通常只需要幾毫秒。酷嗎?相當酷。
三、沒有 DNS 的世界,上網就是一場災難。域名系統用我們人類能看懂的方式,馴服了冰冷的數字網絡。有了它,我們用記住的名字就能上網,永遠不必去背誦 IP 地址;即便網站后臺遷移到另一臺服務器,換個新 IP,你照樣能用同一個網址訪問,用戶完全無感;而且通過緩存——也就是把最近查過的地址臨時存一份——網站加載速度還能變得更快。如果沒有 DNS,瀏覽體驗會直接倒退幾十年:一切變得又慢又讓人暴躁,就像在電話號碼本里手動翻找人名那樣原始。
四、換個姿勢重新理解一次。拿出你的手機,打開通訊錄看一眼。聯系人姓名,就是“google.com”;電話號碼,就是 IP 地址;你點擊聯系人撥號,就等于在瀏覽器打開網站。你從不會去記所有人的號碼,只是記名字,剩下的事交給手機。DNS 在互聯網世界干的,正是這件事。電話本這個比喻,能把 DNS 的底層邏輯一次性講透。
五、一項悄悄干活從不抱怨的技術。DNS 是那種每天默默運轉、大多數人永遠不會察覺到的技術。沒人注意它,但我們訪問的每一個網站都建在它的地基上。這篇文章起頭,是一個我當初完全不感冒的任務。但等我真正把它研究完、寫下來,才發現自己學到的東西比想象的多得多。有時,那些被“逼著”學的東西,最后反而像一份意外的禮物砸中你。我想感謝那幾個忽悠我的人,他們推了我一把,我才沒繼續心安理得地忽略掉這個每天扛著整個互聯網跑腿的系統。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.