## 域名系統
#### (一)DNS的訪問過程
(1)確認本機是否綁定hosts或者存在緩存。
(2)已設置默認DNS使用默認DNS,未設置即訪問運營商localDNS。
(3)localDNS訪問根DNS
(4)訪問頂級域名DNS
(5)訪問二級域名DNS,遞歸查詢(權威DNS)


> 注意:圖中的IP可看成公網IP
>
> 詳細解析過程請參考:https://www.cnblogs.com/liyuanhong/articles/7353974.html
*****
>[info] 1、本地DNS服務器(又稱LocalDNS、遞歸DNS,公共DNS是遞歸DNS的一種特例)
打開瀏覽器輸入網站首頁時,首先主機發送DNS請求會先到本地DNS服務器,若本地DNS服務器內有對應的緩存,可以直接進行調用;
>[info] 2、DNS根服務器
若DNS服務器內沒有對應的緩存,那么轉發至DNS根服務器進行解析,但DNS根服務器沒有記錄具體的域名和IP地址的對應關系,而是告知本地的DNS服務器去域服務器上去查詢,并且直接給出域服務器的地址;
>[info] 3、DNS域服務器
本地DNS服務器繼續向域服務器發出解析請求,網易對應的是.com域服務器,那么請求直接發送至.com域服務器,但域服務器接收到請求后也不會直接回應對應的域名和IP地址的對應關系,而是告知本地DNS服務器網易的域名所對應解析服務器的地址。
>[info] 4、解析服務器
本地DNS服務器向解析服務器發送解析請求,解析服務器會回應網易域名和IP地址的對應關系,本地DNS服務器在接收到回應后,將域名和IP地址的對應關系發送給客戶,并且保留一份記錄到自身的DNS服務器緩存中去,當下一個用戶去訪問網易的網站后會直接從本地DNS服務器進行調用。
>[warning] 參考文檔:[https://blog.51cto.com/10316297/2121578](https://blog.51cto.com/10316297/2121578)
*****
分割線
*****
DNS似乎并沒有這么簡單:

以查詢www.me.ayouleyang.cn域名為例:
(1)LocalDNS緩存服務器
(2)根服務器
(3)cn服務器
(4)ayouleyang.cn服務器
ayouleyang.cn的解析DNS為dns17.hichina.com
又從頭查一遍dns17.hichina.com域名的A記錄
(5)me.ayouleyang.cn服務器
me.ayouleyang.cn的DNS服務器為dns.ayouleyang.cn
從頭查一遍dns.ayouleyang.cn對應的A記錄
(6)查詢www.me.ayouleyang.cn得出結果
每一個NS記錄都靠一個域名來解析,所以NS記錄自身的域名也要解析一遍。
*****
> 其他學習文檔:[https://blog.csdn.net/kim\_weir/article/details/78465641](https://blog.csdn.net/kim_weir/article/details/78465641)
- 文檔目錄
- 一、PHP筆記
- 安裝及部署工具
- Oneinstack使用筆記
- LNMP使用筆記
- Composer使用筆記
- Composer包制作和應用
- Windows下的PHP
- Docker安裝MySQL
- PHP知識匯總
- PHP8.0特性
- PHP雜項總結
- empty測試
- 阿里云SDK使用文檔
- Swoole學習筆記
- PHP系統操作函數
- PHP系統探針
- PHPExcel導入導出數據
- PHP正則
- 數組函數
- Workerman小記
- trait
- 抽象類
- MVC設計模式
- PHP連接Access數據庫
- guzzlehttp
- PHP加密方法
- PHP框架集合
- ThinkPHP
- YII
- Laravel使用筆記
- easyswoole
- TP5.1的正確使用方式
- ThinkPHP6.0隊列
- PHP相關技術
- JWT
- 支付筆記
- PHP新寫法
- PHP常用函數
- 二、運維筆記
- CentOS
- 常用命令
- 文件操作類
- 問題記錄
- iptables
- 壓縮解壓命令
- CentOS8筆記
- Linux常用信息查看命令
- curl
- dig&nslookup
- 運維技術
- DNS體系
- CDN體系
- Haproxy負載均衡
- Ansible筆記
- crontab
- LVS簡單理解
- 日志分析
- Python系統監控
- Linux系統監控
- 負載均衡方法
- Shell腳本示例
- ntp同步時間
- 寶塔運維
- Goaccess的使用
- Supervisor使用
- 用戶管理
- RSA證書登錄
- 網絡技術
- DHCP
- IPv6學習
- 網絡技術筆記
- 抓包筆記
- IPv4
- TCP
- IP基礎知識總結
- IPv6地址庫
- IPv6地址列表
- 云產品
- 對象存儲大比拼
- 靜態站點部署方案
- Apache配置總結
- Docker筆記
- 三、Web體系
- HTTP
- HTTP頭字段總結
- head頭部細講
- 跨域請求
- HTTPS
- HTTP狀態碼表
- 關于IP的HTTP頭部
- HTTP Method 詳細解讀
- HTTP的表單提交方式
- Vue
- Vue學習筆記
- ElementUI筆記
- Vue項目部署
- vue+layui
- vue-resource的使用
- axios的使用
- vue-element-admin
- Electron打包Vue
- Javascript
- JavaScript遍歷json總結
- jQuery方法匯總
- WebSocket
- 案例:使用JavaScript獲取用戶內網IP地址
- JS導出Excel
- 前端筆記
- Viewer.js
- CSS筆記
- LayUI使用筆記
- 大屏系統
- 前端大屏系統
- 大屏預覽
- 大屏HTML源碼
- 常見Web攻擊
- OAuth2.0
- 綜合知識
- 四、數據庫
- MySQL
- MySQL數據庫備份
- MySQL用戶管理
- JSON字段查詢
- mysqldump導入導出數據庫總結
- MySQL數據類型
- MySQL數據庫案例總結
- MySQL8.0.11安裝筆記
- Binlog筆記
- Navicat的使用
- MySQL常用內置函數
- Windows安裝mysql8.0
- 存儲過程
- 字符集
- MySQL主從復制
- PHPEnv一鍵安裝MySQL
- Redis
- Redis筆記
- Redis在Windows的使用
- phpredis教程
- Redis事務
- redis集群
- Redis主從復制
- MongoDB
- MongoDb匯總
- 遇到問題
- 備份與還原
- 語法
- MongoDB安裝
- Postgresql
- 安裝
- PG筆記
- PG在ThinkPHP中使用
- PG數據庫和MySQL數據庫對比
- Elasticsearch
- 查詢
- 數據格式
- 五、Nginx
- Nginx筆記
- 反向代理&負載均衡
- Nginx配置文件全面解析
- https/ssl配置
- 日志切割
- Openresty筆記
- 變量解釋
- Tengine
- Nginx語法
- 文件服務器
- 六、其他語言
- Node.js
- Express
- 安裝問題
- pm2的使用
- Python
- Tornado
- pip的使用
- Scrapy
- 多進程
- Python導出本地Excel
- Requests庫
- Socket庫
- Django
- 問題記錄
- Python虛擬環境
- Fabric庫
- Flask
- MongoDB的使用
- uwsgi部署
- Gunicorn部署
- Flask的虛擬環境
- Java
- JDK安裝
- JSP頁面
- JSP項目部署
- 學習計劃
- Java學習記錄
- Java相關狀態碼
- Jfinal筆記
- Websocket
- 客戶端JavaScript
- Workman
- Swoole
- .NET
- WPF
- PowerShell
- 文件操作
- Interop.Excel
- DotNet筆記
- Go
- beego
- gin
- 備份MySQL數據庫至OSS
- 對象存儲比較更新
- 使用Go做一個靜態文件服務器
- Ruby
- 七、雜項
- 其他筆記
- 義務勞動系統操作說明
- USB電流筆記
- Git使用筆記
- git常用命令列表
- git碼云配置hook鉤子實現自動部署
- 搭建git服務器
- 命令手冊
- git鉤子
- 自建Git服務器配置自動部署
- 算法匯總
- 時間復雜度和空間復雜度的簡單講解
- 加密算法
- 測試
- AB測試
- OFFICE
- Excel
- 數學筆記
- 對數
- 指數
- 三角函數
- 我用latex寫公式
- 博客生成器
- markdown轉html
- Jekyll
- Hugo
- 附:測試四大git-pages
- Hexo
- svn使用簡記
- 正則表達式
- 草稿
- 個人成長篇
- 自創JS加密PHP解密程序
- 有趣的github項目
- 編輯器使用習慣
- 電腦選購指南
- 服務器重裝備忘錄