為什么使用CDN 會更快?
沒有使用CDN的情況下,用戶從瀏覽器輸入地址,依次經(jīng)過瀏覽器緩存、操作系統(tǒng)緩存(如本地host文件)、域名解析服務器、根域名解析服務器、頂級域名服務器直到找到對應的ip地址返回給用戶,用戶向該地址發(fā)起請求;
使用了CDN的情況下,用戶在瀏覽器中輸入要訪問的域名,瀏覽器向DNS服務器請求對域名進行解析。由于CDN對域名解析進行了調(diào)整,DNS服務器會最終將域名的解析權(quán)交給CNAME指向的CDN專用DNS服務器。
1、CDN的DNS服務器將CDN的負載均衡設備IP地址返回給用戶。
2、用戶向CDN的負載均衡設備發(fā)起內(nèi)容URL訪問請求。
3、CDN負載均衡設備會為用戶選擇一臺合適的緩存服務器提供服務。選擇的依據(jù)包括:根據(jù)用戶IP地址,判斷哪一臺服務器距離用戶最近;根據(jù)用戶所請求的URL中攜帶的內(nèi)容名稱,判斷哪一臺服務器上有用戶所需內(nèi)容;查詢各個服務器的負載情況,判斷哪一臺服務器的負載較小?;谝陨线@些依據(jù)的綜合分析之后,負載均衡設置會把緩存服務器的IP地址返回給用戶。
4、用戶向緩存服務器發(fā)出請求。
5、緩存服務器響應用戶請求,將用戶所需內(nèi)容傳送到用戶。
瀏覽器是如何知道什么域名應該交給CND專用的DNS服務器?
1、DNS查詢:使用nslookup或者dig等工具查詢網(wǎng)站的域名解析結(jié)果。如果返回的IP地址與原始主機的IP地址不一致,那么很有可能該網(wǎng)站使用了CDN。
2、響應頭:使用瀏覽器的開發(fā)者工具,查看網(wǎng)站的響應頭信息。如果響應頭中包含類似于"X-Cache","X-CDN"或者"Cache-Control"等字段,那么該網(wǎng)站可能使用了CDN。
3、網(wǎng)絡請求路徑:通過瀏覽器的開發(fā)者工具,查看網(wǎng)站請求的靜態(tài)資源(例如圖片、CSS、JavaScript等)的URL路徑。如果路徑中包含類似于"cdn"或者"static"等關(guān)鍵字,那么很有可能該網(wǎng)站使用了CDN。
使用CDN有什么好處?
① 減少網(wǎng)絡延遲:CDN在全球各地建立了分布式的服務器節(jié)點,將網(wǎng)站的內(nèi)容緩存到離用戶最近的節(jié)點。當用戶訪問網(wǎng)站時,CDN會自動將內(nèi)容傳送到最近的服務器節(jié)點,這樣可以減少數(shù)據(jù)在全球范圍內(nèi)傳輸所需的時間,從而減少網(wǎng)絡延遲。
② 節(jié)省帶寬:由于CDN可以緩存網(wǎng)站的內(nèi)容,因此當用戶訪問網(wǎng)站時,CDN會從最近的服務器節(jié)點提供內(nèi)容,而不是從源服務器上提取。這可以減少源服務器的負載,從而節(jié)省帶寬和服務器資源。
③ 提高網(wǎng)站可用性:當源服務器發(fā)生故障或停機時,CDN可以自動將流量重定向到其他可用的服務器節(jié)點,從而確保網(wǎng)站的可用性。
瀏覽器從輸入url到呈現(xiàn)發(fā)生了什么
1、根據(jù)輸入的網(wǎng)址解析域名到對應的ip地址,查找順序:
瀏覽器緩存、操作系統(tǒng)緩存、路由器緩存、DNS 服務器(記錄這域名和ip地址的映射)、根服務器。
2、找到ip地址需要先建立TCP鏈接
客戶端發(fā)送 SYN數(shù)據(jù)包表示請求連接,服務端響應SYN 和 ACK 表示問答,客戶端收到后回應一個 ACK數(shù)據(jù)包表示建立連接成功。
3、發(fā)送HTTP請求
完整的請求報文包括請求行(包含請求的方法、url、協(xié)議版本)、請求頭(瀏覽器的信息鍵值對組成)、空行、請求體(請求的數(shù)據(jù));
4、服務器處理返回http響應報文
5、(解析DOM)瀏覽器收到html文件,瀏覽器會將收到的字節(jié)內(nèi)容、轉(zhuǎn)為字符、token化、轉(zhuǎn)為節(jié)點對象,將對象鏈在一起形成文本對象模型也就是DOM
6、遇到link標簽加載css,同時繼續(xù)解析DOM
7、接收到css文件后通用需要把字節(jié)轉(zhuǎn)為字符、token化生產(chǎn)CSSOM
8、如果遇到script標簽,下載對應的腳本,CSSOM構(gòu)建完成后才會執(zhí)行JS的內(nèi)容,因為JS即可以操作DOM又可以操作CSSOM,所以需要等js加載完成后再生產(chǎn)渲染樹
8、匹配DOM和CSSOM節(jié)點,生成渲染樹
9、獲取節(jié)點樹的結(jié)構(gòu)、位置、大小、依據(jù)盒模型布局
10、將渲染樹以像素的形式繪制,呈現(xiàn)網(wǎng)頁
cookie、 session、token 的區(qū)別
cookie 用戶第一次登錄請求時服務端在響應頭設置set-cookie,瀏覽器發(fā)送請求并攜帶cookie,服務器驗證cookie正確正常響應。
session 用戶第一次登錄請求時服務端創(chuàng)建一個session,并將sessionId設置在響應頭set-cookie給客戶端,客戶端發(fā)送請求并攜帶cookie,服務端通過sessionId找session,驗證正確正常響應。
token 用戶第一次登錄請求時服務端生產(chǎn)token,token中帶有用戶id,客戶方發(fā)送請求時將token放在請求頭中,服務端獲取到token校驗通過后正常響應。
三者的區(qū)別:
1、cookie 存儲在客戶端,大小4KB,不夠安全;
2、session 存儲在服務端 無大小限制 更安全,但是消耗服務器資源;
3、token 都可以存儲,體積小,只存了用戶id相對安全,需要根據(jù)id查找用戶信息速度慢;
說說你對webworker的理解
文章文章來源:http://www.zghlxwxcb.cn/news/detail-822066.html
持續(xù)完補充中…歡迎大佬指正文章來源地址http://www.zghlxwxcb.cn/news/detail-822066.html
到了這里,關(guān)于計算機網(wǎng)絡、瀏覽器相關(guān)高頻面試題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!