DNS解析流程

解析順序
1) 瀏覽器緩存
當(dāng)用戶通過瀏覽器訪問某域名時(shí),瀏覽器首先會(huì)在自己的緩存中查找是否有該域名對(duì)應(yīng)的IP地址(若曾經(jīng)訪問過該域名且沒有清空緩存便存在);
2) 系統(tǒng)緩存
當(dāng)瀏覽器緩存中無域名對(duì)應(yīng)IP則會(huì)自動(dòng)檢查用戶計(jì)算機(jī)系統(tǒng)Hosts文件DNS緩存是否有該域名對(duì)應(yīng)IP;
3) 路由器緩存
當(dāng)瀏覽器及系統(tǒng)緩存中均無域名對(duì)應(yīng)IP則進(jìn)入路由器緩存中檢查,以上三步均為客服端的DNS緩存;
4) ISP(互聯(lián)網(wǎng)服務(wù)提供商)DNS緩存
當(dāng)在用戶客服端查找不到域名對(duì)應(yīng)IP地址,則將進(jìn)入ISP DNS緩存中進(jìn)行查詢。比如你用的是電信的網(wǎng)絡(luò),則會(huì)進(jìn)入電信的DNS緩存服務(wù)器中進(jìn)行查找;
5) 根域名服務(wù)器
當(dāng)以上均未完成,則進(jìn)入根服務(wù)器進(jìn)行查詢。全球僅有13臺(tái)根域名服務(wù)器,1個(gè)主根域名服務(wù)器,其余12為輔根域名服務(wù)器。根域名收到請(qǐng)求后會(huì)查看區(qū)域文件記錄,若無則將其管轄范圍內(nèi)頂級(jí)域名(如.com)服務(wù)器IP告訴本地DNS服務(wù)器;
6) 頂級(jí)域名服務(wù)器
頂級(jí)域名服務(wù)器收到請(qǐng)求后查看區(qū)域文件記錄,若無則將其管轄范圍內(nèi)主域名服務(wù)器的IP地址告訴本地DNS服務(wù)器;
7) 主域名服務(wù)器
主域名服務(wù)器接受到請(qǐng)求后查詢自己的緩存,如果沒有則進(jìn)入下一級(jí)域名服務(wù)器進(jìn)行查找,并重復(fù)該步驟直至找到正確紀(jì)錄;
8)保存結(jié)果至緩存
本地域名服務(wù)器把返回的結(jié)果保存到緩存,以備下一次使用,同時(shí)將該結(jié)果反饋給客戶端,客戶端通過這個(gè)IP地址與web服務(wù)器建立鏈接。
http(超文本傳輸協(xié)議)
1.由html文件->包含各種各樣的元素(URL鏈接)->web頁面
2.URL結(jié)構(gòu)
http:// www.qq.com:80 /news/index.html
協(xié)議 —- 域名:—- 端口– 具體的文件名下面的某個(gè)頁面
3.http的工作原理
1.發(fā)起dns請(qǐng)求
2.獲取到域名對(duì)應(yīng)的IP地址
3.瀏覽器發(fā)起tcp的連接
4.基于tcp的連接,傳輸http的請(qǐng)求(一次tcp的連接,可以建立多次的http請(qǐng)求)
5.瀏覽器請(qǐng)求/index.html
6.服務(wù)器響應(yīng)/index.html至瀏覽器
7.瀏覽器翻譯index.html中的內(nèi)容為人類可讀
8.斷開TCP的四次揮手
http的短連接:建立一次tcp的連接,發(fā)起一次http的請(qǐng)求,結(jié)束,tcp斷開。
http的長連接:建立一次tcp的連接,發(fā)起多次http的請(qǐng)求,結(jié)束,tcp端口。
4.http的請(qǐng)求方法
get 請(qǐng)求(獲取)一個(gè)網(wǎng)站的頁面
post 上傳什么內(nèi)容至服務(wù)器
5.http的響應(yīng)狀態(tài)碼(以3位數(shù)字組成)
200 成功
301 永久重定向(redirect)
302 臨時(shí)重定向(redirect)
304 瀏覽器緩存
403 請(qǐng)求不到首頁,權(quán)限被拒絕
404 資源找不到
500 服務(wù)器內(nèi)部錯(cuò)誤,程序代碼錯(cuò)誤
502 找不到后端的資源
504 請(qǐng)求超時(shí)
6.用戶訪問網(wǎng)站攜帶的參數(shù),以及服務(wù)端返回的參數(shù)
1.概況
Request URL: http://10.0.0.7/index.html # 請(qǐng)求的URL地址
Request Method: GET # 請(qǐng)求的方法(獲?。?Status Code: 304 Not Modified # 返回的狀態(tài)
Remote Address: 10.0.0.7:80 # 請(qǐng)求的地址
2.客戶端請(qǐng)求的頭部信息
Accept: text/html, # 請(qǐng)求的類型
Accept-Encoding: gzip, deflate # 是否進(jìn)行壓縮
Accept-Language: zh-CN,zh;q=0.9 # 請(qǐng)求的語言
Cache-Control: max-age=0 # 緩存
Connection: keep-alive # TCP長連接
Host: www.oldboyedu.com # 請(qǐng)求的域名
If-Modified-Since: Fri, 04 May 2018 08:13:44 GMT # 修改的時(shí)間
If-None-Match: "a49-56b5ce607fe00" # 標(biāo)記
Upgrade-Insecure-Requests:1 # 在http和https之間起的一個(gè)過渡作用
User-Agent: Mozilla/5.0 # 用戶的瀏覽器
===========請(qǐng)求一個(gè)空行=========================
3.服務(wù)端響應(yīng)的頭部信息
HTTP/1.1 304 Not Modified # 返回服務(wù)器的http協(xié)議,狀態(tài)碼
Date: Fri, 14 Sep 2018 09:14:28 GMT # 返回服務(wù)器的時(shí)間
Server: Apache/2.4.6 (CentOS) PHP/5.4.16 # 返回服務(wù)器使用的軟件(Apache php)
Connection: Keep-Alive # TCP長連接
Keep-Alive: timeout=5, max=100 # 長連接的超時(shí)時(shí)間
ETag: "a49-56b5ce607fe00" # 驗(yàn)證客戶端標(biāo)記
===========返回一個(gè)空行=========================
===========返回內(nèi)容頁面=========================
HTTP媒體類型
