首先在瀏覽器輸入一個網(wǎng)址
瀏覽器通過DNS去查找對應(yīng)的IP地址
DNS的查找過程如下:
a. 瀏覽器先查找緩存的DNS記錄有沒有,沒有就做一個系統(tǒng)調(diào)用,獲取系統(tǒng)緩存的記錄;
b. 接著會去路由器的緩存DNS里面找;
c. 如果沒有記錄就會到ISP的DNS緩存中查看記錄猜拾;(ISP緩存,本身是一種寬帶接入提供商給網(wǎng)頁批量訪問加速的技術(shù)蛉腌。ISP會將當(dāng)前訪問量較大的網(wǎng)頁內(nèi)容放到ISP服務(wù)器的緩存中拓瞪,當(dāng)有新的用戶請求相同內(nèi)容時缴罗,可以直接從緩存中發(fā)送相關(guān)信息,不必每次都去訪問真正的網(wǎng)站吴藻,從而加快了不同用戶對相同內(nèi)容的訪問速度瞒爬,同時也能節(jié)省網(wǎng)間流量結(jié)算成本。)
d. 從跟域名服務(wù)器開始進(jìn)行遞歸搜索沟堡,從頂級域名到二級三級域名,最終得到一個IP地址-
瀏覽器給服務(wù)器發(fā)送HTTP請求矢空,請求頭header信息如下圖:
image.png 由于輸入的原因航罗,可能服務(wù)器會發(fā)送301重定向響應(yīng),這時瀏覽器繼續(xù)請求重定向訪問的地址
為什么服務(wù)器一定要重定向而不是直接發(fā)會用戶想看的網(wǎng)頁內(nèi)容呢屁药?這個問題有好多有意思的答案粥血。
其中一個原因跟搜索引擎排名有 關(guān)。你看,如果一個頁面有兩個地址复亏,就像http://www.igoro.com/ 和http://igoro.com/趾娃,搜索引擎會認(rèn)為它們是兩個網(wǎng)站,結(jié)果造成每一個的搜索鏈接都減少從而降低排名缔御。而搜索引擎知道301永久重定向是 什么意思抬闷,這樣就會把訪問帶www的和不帶www的地址歸到同一個網(wǎng)站排名下。
還有一個是用不同的地址會造成緩存友好性變差耕突。當(dāng)一個頁面有好幾個名字時笤成,它可能會在緩存里出現(xiàn)好幾次。
服務(wù)器處理請求
服務(wù)器會查看請求的參數(shù)和cookie等眷茁,來進(jìn)行一些數(shù)據(jù)的操作-
服務(wù)返回HTML響應(yīng)
image.png
Response Headers說明了如何去解釋響應(yīng)信息
瀏覽器顯示HTML
在瀏覽器沒有完整接受全部HTML文檔時炕泳,它就已經(jīng)開始顯示這個頁面了;
當(dāng)瀏覽器顯示的時候發(fā)現(xiàn)獲取其他一些內(nèi)容(如圖片上祈、css樣式表培遵、js文件),瀏覽器會再次發(fā)送請求