Python 閒談 11 -- 開發不得不知道的網絡基礎--域名

Python 閒談 11 -- 開發不得不知道的網絡基礎--域名

One Day

Python小星問我一個問題

為什麼我在公司可以訪問後臺管理頁面?

在家出現下面的畫面?

Python 閒談 11 -- 開發不得不知道的網絡基礎--域名

借這個問題,我們簡單聊聊 ip協議、url、域名、DNS。

● 兩臺機器之間是通過什麼通信?

相信不少人在自己電腦裡安裝過數據庫,利用可視化工具,通常在“我的SQL主機地址”裡填寫“localhost”或者“127.0.0.1”,但是如果你的小夥伴要訪問你的數據庫呢?通常我們在 cmd 中輸入命令 ipconfig 查看我們的 ip 地址。

>>> 任意兩臺主機通信是依靠 IP地址

● url

https://www.toutiao.com/c/user/2299783409577476/#mid=1640528322059271

url 的組成部分:

① 協議:在 internet 中有多種協議,如 http、https、ftp,在“https”後“//”為分隔符;

② 域名:也可以使用 ip 地址 作為域名使用,如 “www.toutiao.com”;

③ 端口:不是一個url必須的部分,如果省略端口部分,將採用默認端口,開發的小夥伴經常會用到 8080 端口;

④ 虛擬目錄:不是一個url必須的部分,劃分範圍為從域名後的第一個“/”開始到最後一個“/”為止;

⑤文件名:不是一個url必須的部分,從域名後的最後一個“/”開始至“?”(或 “#” 或至結束)是文件名部分

⑥參數:參數:從 “?” 開始到 “#”(或至結束)為止之間的部分為參數部分,又稱搜索部分、查詢部分。參數間用 “&” 作為分隔符

● DNS(Domain Name System)

DNS 域名系統,在 DNS 沒有出現以前,通過配置

C:\\Windows\\System32\\drivers\\etc\\ 下的 hosts 文件

Python 閒談 11 -- 開發不得不知道的網絡基礎--域名

hosts文件

DNS 專門用於解析域名得到IP地址


● 域名解析流程

的主頁為例

https://www.toutiao.com/c/user/2299783409577476/#mid=1640528322059271


① Chrome 瀏覽器檢查自身緩存中是否有對應 ip,如果有,解析結束;

② 檢查操作系統中的 hosts 文件(默認是沒有配置);

③ 如果還沒解析成功,才會真正的請求本地域名服務器(LDNS)來解析這個域名;

④ 如果 LDNS 仍然沒有,就直接跳到 Root Server 域名服務器請求解析;

注意: Root Server

⑤ 根域名服務器返回給 LDNS 一個所查詢域的主域名服務器(gTLD Server,國際頂尖域名服務器,如.com .cn .org 等)地址;

⑥ 此時 LDNS 再發送請求給上一步返回的 gTLD;

⑦ 接受請求的 gTLD 查找並返回這個域名對應的 Name Server 的地址,這個 Name Server 就是網站註冊的域名服務器;

⑧ Name Server 根據映射關係表找到目標 ip,返回給 LDNS;

⑨ LDNS 緩存這個域名和對應的 ip;

⑩ LDNS 把解析的結果返回給用戶,用戶根據 TTL 值緩存到本地系統緩存中,域名解析過程至此結束 LDNS 把解析的結果返回給用戶,用戶根據 TTL 值緩存到本地系統緩存中,域名解析過程至此結束;

上述中Python小星在家不能訪問公司後臺管理頁,是因為域名綁定的內網IP ,這樣的話,域名只能在內網訪問,外網是訪問不到的。

>>>


分享到:


相關文章: