深入分析java web技術內幕第一章筆記
一、b/s架構的好處
b/s架構基於統一的http協議進行前後臺的資料互動。
http採用無狀態的短連線的通訊方式,一次請求完成一次資料互動。之後就斷開了。採用這種方式可以使得伺服器服務更多的使用者。
二、瀏覽器發起一個請求(瀏覽器回車後具體發生了什麼)
1.瀏覽器輸入url(唯一標識網路伺服器資源),回車
2.瀏覽器傳送http請求,(http協議是tcp/ip的連線方式)
3.進行域名(url)dns解析、將對應的域名解析為ip.
4.與目標伺服器進行socket連線。一個socket含有源ip,埠,目標ip,埠,經過路由物流鏈路連線目標伺服器
5.到達目標伺服器,伺服器端可能會有負載均衡裝置來平均分配所有的使用者請求。在請求到達伺服器後,會經過一些複雜的業務邏輯來處理使用者請求。請求的資料可能在三個地方:
分散式快取系統,檔案系統或者資料庫中。從其中取出資料返回給瀏覽器。
6.瀏覽器收到伺服器的返回資料進行解析,發現有一部分靜態資源(css,js,img)的情況,再次傳送請求去獲取這些靜態資源。這些靜態資源很有可能是在CDN上,如果在的話CDN伺服器會再次處理使用者的請求。分配到最近的一個儲存靜態資源的cdn節點。
7.最終在瀏覽器端看到完整的網頁。
三、http解析
一般瀏覽器f12可以檢視一次請求的具體資訊
除錯頁面的過程中常會發現瀏覽器有快取,一般這時按ctrl+f5解決(但是個人感覺很多時間根本還是有快取)。ctrl+f5時會在請求頭部加pragma:no-cache,Cache_Control:no-cache
四,cdn工作機制
工作機制
CDN即內容分發網路。通過現有的Internet中增加一層新的網路架構,將網站的內容釋出到最接近使用者的網路邊緣,使使用者可以就近取得所需要的內容,提高使用者網站的響應速度。
負載均衡
對工作任務進行平衡、分攤到多個操作單元上去,共同完成任務。
三種架構:
1.鏈路負載均衡
由DNS解析來完成負載均衡,使用者直接訪問目標伺服器,而不需要經過其他的代理伺服器,通常訪問速度會更快。
缺點:一旦某臺伺服器掛掉,由於使用者本地和Local DNS都有快取,快取沒有及時更新,則造成使用者無法訪問這個域名。
2.叢集負載均衡
硬體負載均衡:由一臺專門的硬體裝置負責轉發請求,太貴一般公司用不起,但是效能很好
軟體負載均衡:由多臺代理伺服器組成。網路延時較長。
3.作業系統負載均衡
利用作業系統級別的軟中斷或者硬體中斷來完成。
小菜鳥基本上聯絡不到應用中了。。。