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