1. 程式人生 > 其它 >從輸入網址到網頁顯示的過程

從輸入網址到網頁顯示的過程

  1. 解析URL(uniform resource location,統一資源定位符),生成傳送給web伺服器的http請求資訊;

  2. 獲取ip地址,首先查詢快取中是否有這個伺服器域名的記錄。查詢順序依次是瀏覽器->作業系統->host檔案,若是有則直接返回,若無則通過DNS域名解析得到ip地址;

  3. 建立tcp連線,三次握手,加上tcp頭部生成tcp報文,若http訊息過長,超過MSS長度的話,還要進行tcp分割;

  4. 加上ip頭部生成ip報文,IP頭部中包含了源地址ip和目標地址ip;

  5. 加上MAC頭部生成MAC報文,MAC包頭裡面要包含傳送方和接收方的MAC地址,前者可以直接從ROM中讀取出來,後者首先從路由表中獲得下一步轉發的目標ip,存在Gatway列中,然後先查詢ARP快取是否有相關記錄,若命中,直接獲取相應的MAC地址,否則通過ARP協議得到MAC地址;

  6. 網絡卡獲取網路包之後,會將其複製到網絡卡內的快取區中,接著會在其開頭加上報頭和起始幀分界符,在末尾加上用於檢測錯誤的幀校驗序列FCS。然後網絡卡將網路包中的數字訊號轉換為電訊號,通過網線傳送出去;

  7. 交換機進行包接受操作,將電訊號轉化為數字訊號,並根據尾部的FCS校驗錯誤,如果沒問題就放到緩衝區中,然後交換機根據MAC地址表查詢包的接收方的MAC地址,將訊號轉發到相應的埠,如果沒查詢到,就會轉發到除源埠外的所有埠上;

  8. 網路包經過交換機之後,現在到達了路由器,並在此被轉發到下一個路由器或目標裝置。轉發的原理也是通過查表來實現,路由器有MAC地址,電訊號到達網線介面後轉換為數字訊號,fcs校驗,查路由表進行路由匹配,目標伺服器ip地址和每個條目的子網掩碼進行與運算,得到的地址若與條目中的目的地址匹配則作為候選轉發目標,如果都沒有就選擇預設路由作為轉發目標,同時可以根據匹配條目的閘道器列是否為空判斷要轉發的地址是否為終點。網路包的傳送則跟上述的一樣,首先由ip獲取MAC地址,快取命中則直接讀取,否則就通過ARP協議獲得,然後通過交換機到達下一個路由器,經過若干次轉發後網路包到達目的地址;

  9. 伺服器收到來自客戶端的資料包後,然後進行逐層解析,去掉MAC頭部、ip頭部、tcp頭部得到請求內容,然後將網頁封裝在響應報文傳送給客戶端,同理客戶端收到後也進行逐層解析,然後將頁面內容通過瀏覽器渲染就得到最終的網頁。