1. 程式人生 > >《深入分析Java Web技術內幕》讀後感之1-web請求過程

《深入分析Java Web技術內幕》讀後感之1-web請求過程

HTTP     DNS     CDN

 

基於http 精髓為url用來資源定位

DNS域名解析 CDN靜態資源快取

發起請求:dns解析出地址並和80埠建立連線 然後瀏覽器傳送請求到伺服器

http請求過程就是建立socket通訊過程

http解析 包括 1 請求頭 2 響應頭 3 狀態碼

 

http head中的可選值 no-cache 表示所有內容不會被快取

DNS域名解析過程

 

當一個使用者在瀏覽器中輸入www.taobao.com時,NDS解析將會有大概10個步驟,過程如下:

第一步:瀏覽器會檢查快取中有沒有這個域名對應的解析過的IP地址,如果快取中有,這個解析過程就將結束(域名快取的時間是通過TTL屬性來設定的);

第二步:如果使用者的瀏覽器快取中沒有,瀏覽器會查詢作業系統快取中是否有這個域名對應的DNS解析結果,在Windows中是通過C:\Windows\System32\drivers\etc\hosts檔案來設定的,你可以將域名指定到任何能夠訪問的IP地址,Linux中是在\etc\hosts檔案中設定的;

注:前面兩步都是是本機中完成的,如果現在還無法完成域名的解析,就會真正請求域名伺服器來解析這個域名了。

第三步:我們的網路配置中都會有DNS伺服器地址(Windows使用ipconfig /all命令檢視,Linux使用cat /etc/resolv.conf命令檢視),前面兩個過程無法解析時,作業系統會把這個域名傳送給網路配置中設定的LDNS,也就是本地區的域名伺服器,這個DNS通常是給你提供網際網路服務接入者,如電信、學校、公司等,通常是在一個城市中,不會很遠,大部分的域名解析到這裡就完成了;

第四步:如果LDNS仍然不能解析,這時候LDNS就會到Root Server域名伺服器請求解析;

第五步:根(RDNS)域名伺服器返回給本地域名伺服器(LDNS)一個所要查詢的主域名伺服器(gTLD是國際頂級域名伺服器,如.com、.cn等)的IP地址;

第六步:本地域名伺服器向根域名伺服器返回的主域名伺服器傳送請求;

第七步:接受請求的主域名伺服器查詢並返回對應的Name Server域名伺服器的IP地址,這個Name Server通常就是你註冊的域名伺服器,如你在某個域名服務提供商申請的域名,則這個域名解析就由這個域名提供商的伺服器來完成;

第八步:Name Server域名伺服器會查詢儲存的域名和IP的對映關係表,連同一個TTL值返回給LDNS域名伺服器;

第九步:LDNS得到該域名對應的IP和TTL值後,會快取這個域名和IP對應的關係,快取的時間由TTL值來控制;

第十步:把解析的結果返回給使用者,使用者根據TTL值快取在本地快取系統中,域名解析過程結束。

--------------------- 本文來自 依韻_ 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/Alexshi5/article/details/79452610?utm_source=copy

 

CDN的工作機制(映象、快取、負載均衡)可擴充套件、安全性、可靠性

CDN架構: 返回給離這個訪問使用者最近的節點

 

使用CDN加速的請求過程

        一個使用者要訪問某個靜態檔案,首先要向LDNS伺服器發起請求,經過幾次解析之後,這時LDNS通常會把它CNAME到另外一個域名,這個域名最終會被指向CDN全域性中的DNS負載均衡伺服器,再由這個GMT來最終分配返回給離這個訪問使用者最近的CDN節點,使用者拿到域名解析結果之後,就可以直接去這個最近的CDN節點訪問靜態檔案了,如果這個節點中所請求的檔案不存在,就會再回到源站去獲取檔案 ,然後再返回給使用者。

3、負載均衡

        通常有三種負載均衡:鏈路負載均衡、叢集負載均衡、作業系統負載均衡,DNS解析就屬於鏈路負載均衡,叢集負載均衡一般分為硬體負載均衡和軟體負載均衡,硬體負載均衡一般使用一臺專門的硬體裝置來轉發請求,造價可能會比較高昂,軟體負載均衡使用成本比較低,但是訪問請求需要經過多次代理,會增加網路延遲,最後一種作業系統負載均衡則是利用作業系統級別的軟中斷或者硬體中斷來達到負載均衡,如可以設定多佇列網絡卡等來實現。

4、CDN動態加速

        它的技術原理就是在CDN的DNS解析過程中通過動態的鏈路探測來尋找回源最好的一條路徑,然後通過DNS的排程將所有請求排程到選定的這條路徑上回源,從而加速使用者訪問的效率,如下圖: