One Day
Python小星問我一個問題
為什麼我在公司可以訪問後臺管理頁面?
在家出現下面的畫面?
借這個問題,我們簡單聊聊 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 文件
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 值緩存到本地系統緩存中,域名解析過程至此結束;
<strong>上述中Python小星在家不能訪問公司後臺管理頁,是因為域名綁定的內網IP ,這樣的話,域名只能在內網訪問,外網是訪問不到的。
>>>
閱讀更多 Python大星 的文章