在瀏覽器輸入:最後,瀏覽器呈現出相應網頁,這個過程究竟發生了什麼?
第一步,解析網域名稱,找到主機ip
(1)瀏覽器會快取dns一段時間,一般2-30分鐘不等。如果有快取,直接返回ip,否則下一步。
(2)快取中無法找到ip,瀏覽器會進行乙個系統呼叫,查詢hosts檔案。如果找到,直接返回ip,否則下一步。(在計算機本地目錄etc下有乙個hosts檔案,hosts檔案中儲存有網域名稱與ip的對應解析,通常也可以修改hosts科學上網或破解軟體。)
(3)進行了(1)(2)本地查詢無果,只能借助於網路。路由器一般都會有自己的dns快取,isp服務商dns快取,這時一般都能夠得到相應的ip。如果還是無果,只能借助於dns遞迴解析了。
(4)這時,isp的dns伺服器就會開始從根網域名稱伺服器開始遞迴搜尋,從.com頂級網域名稱伺服器,到baidu的網域名稱伺服器。
到這裡,瀏覽器就獲得了ip。在dns解析過程中,常常會解析出不同的ip。比如,電信的是乙個ip,網通的是另乙個ip。這是採取了智慧型dns的結果,降低運營商間訪問延時,在多個運營商設定主機房,就近訪問主機。電信使用者返回電信主機ip,網通使用者返回網通主機ip。當然,劫持dns,也可以遮蔽掉一部分網點的訪問,某防火長城也加入了這一特性。
第二部,瀏覽器與**建立tcp連線
瀏覽器利用ip直接與**主機通訊。瀏覽器發出tcp(syn標誌位為1)連線請求,主機返回tcp(syn,ack標誌位均為1)應答報文,瀏覽器收到應答報文發現ack標誌位為1,表示連線請求確認。瀏覽器返回tcp()確認報文,主機收到確認報文,三次握手,tcp鏈結建立完成。
第三部分,瀏覽器發起get請求
瀏覽器向主機發起乙個http-get方法報文請求。請求中包含訪問的url,也就是 ,還有user-agent使用者瀏覽器作業系統資訊,編碼等。值得一提的是accep-encoding和cookies項。accept-encoding一般採用gzip,壓縮之後傳輸html檔案。cookies如果是首次訪問,會提示伺服器建立使用者快取資訊,如果不是,可以利用cookies對應鍵值,找到相應快取,快取裡面存放著使用者名稱,密碼和一些使用者設定項(cookie是由伺服器端生成,傳送給user-agent(一般是瀏覽器),瀏覽器會將cookie的key/value儲存到某個目錄下的文字檔案內,下次請求同一**時就傳送該cookie給伺服器(前提是瀏覽器設定為啟用cookie)。cookie名稱和值可以由伺服器端開發自己定義,對於jsp而言也可以直接寫入jsessionid,這樣伺服器可以知道該使用者是否合法使用者以及是否需要重新登入等,伺服器可以設定或讀取cookies中包含資訊,藉此維護使用者跟伺服器會話中的狀態)。
第四部分,顯示頁面或返回其他
但是,對於大型**存在多個主機站點,往往不會直接返回請求頁面,而是重定向。返回的狀態碼就不是200 ok,而是301,302以3開頭的重定向碼,瀏覽器在獲取了重定向響應後,在響應報文中location項找到重定向位址,瀏覽器重新第一步訪問即可。
補充一點的就是,重定向是為了負載均衡或者匯入流量,提高seo排名。利用乙個前端伺服器接受請求,然後負載到不同的主機上,可以大大提高站點的業務併發處理能力;重定向也可將多個網域名稱的訪問,集中到乙個站點;由於baidu.com,www.baidu.com會被搜尋引擎認為是兩個**,照成每個的鏈結數都會減少從而降低排名,永久重定向會將兩個位址關聯起來,搜尋引擎會認為是同乙個**,從而提高排名。
瀏覽器訪問網頁的簡要過程
我們以一張為例,進行講解 首先 對圖中的圖形進行解釋 圖中資料均為假設值 a,b,c,d,e,f,g分別是路由器,均存在兩個以上的mac位址 路由器g左邊的藍色長方體為交換器,其ip位址和子網掩碼分別是15.0.0.0和255.0.0.0 訪問請求過程 客戶端生成乙個資料報 首部 15.0.0.2 ...
瀏覽器載入網頁的過程
瀏覽器的主要功能是將使用者選擇的web資源呈現出來,它需要從伺服器請求資源,並將其顯示在瀏覽器視窗中,資源的格式通常是html,也包括pdf image及其他格式。使用者用uri uniform resource identifier統一資源識別符號 來指定所請求資源的位置,通過dns查詢,將 轉換...
瀏覽器突然無法訪問網頁
這裡涉及到乙個問題 使用者輸入乙個 然後按回車發生了什麼?1.解析url 協議,網域名稱,埠,路徑,資源,引數 2.dns解析 把網域名稱解析成對應的ip 3.資源請求 拿到ip和埠就能找到目標伺服器,然後帶著各種引數請求伺服器,伺服器收到請求後按照他們協商好的格式,把html返回給瀏覽器 4.解析...