輸入乙個**並按回車之後瀏覽器會根據輸入的url查詢對應的ip,具體過程如下:
(1)查詢瀏覽器快取,瀏覽器會儲存一段時間內訪問過的一些**的dns資訊。
(2)如果沒有找到對應的ip,瀏覽器就呼叫作業系統快取來繼續查詢這個**的dns資訊。
(3)如果還是沒找到對應的ip,就傳送乙個請求到路由器上,路由器在路由器快取上查詢記錄的dns資訊。
(4)如果還是沒有找到對應的ip,這個請求就會被傳送到本地dns伺服器,本地dns上快取了一張網域名稱與之ip位址對應的**,有就直接返回網域名稱對應的ip位址
(5)如果還是沒有找到對應的ip, isp的dns伺服器會將請求發向根網域名稱伺服器,然後到頂級網域名稱dns再到權威dns,權威dns是網域名稱解析結果的原出處,它查詢到對應的ip位址後告訴本地dns。
(6)如果到了這裡還是找不到網域名稱的對應資訊,那就網域名稱錯誤了。
dns根據網域名稱查詢ip位址的過程為:瀏覽器快取 --> 作業系統快取 --> 路由器快取–>本地dns快取 --> 根dns–>頂級dns–>權威dns。dns
瀏覽器得到ip後,向伺服器傳送tcp連線。tcp三次握手目前http協議大多都是1.1,在1.1的協議裡,預設開啟了keep-alive,這樣建立的tcp連線,可以在多次請求中復用,不需要重新連線。
瀏覽器和伺服器建立連線以後,瀏覽器就給這個ip位址的伺服器傳送乙個http請求,方式為get,,就是去伺服器獲取一些資源,對於訪問頁面來說,要獲取的頁資源往往是乙個頁面。其本質是在建立起的tcp連線中,按照http協議標準傳送乙個索要網頁的請求。
傳送完請求接下來就是等待回應了。
伺服器收到瀏覽器的請求以後,會解析這個請求(讀請求頭),然後生成乙個響應頭和具體響應內容。接著伺服器會傳回來乙個響應頭和乙個響應,響應頭告訴了瀏覽器一些必要的資訊,例如重要的status code,2開頭如200表示一切正常,3開頭表示重定向,4開頭是客戶端錯誤,如404表示請求的資源不存在,5開頭表示伺服器端錯誤。響應就是瀏覽器請求的頁面內容。
當資料完成請求到返回的過程之後,根據connection的keep-alive屬性可以選擇是否斷開tcp連線,http/1.1一般支援同乙個tcp多個請求,而不是1.0版本下的完成一次請求就發生斷開。tcp四次揮手
輸入乙個URL後敲下回車發生了什麼?
首先瀏覽器先會到快取裡面去找,如果有就直接開啟,如果沒有或者快取過期就對url進行網域名稱解析。url所表示的不是最後資源所在的位置,而是為了方便記憶對ip位址的重定向,網域名稱解析的過程實際是將網域名稱還原為ip位址。首先,瀏覽器會檢查hosts檔案中是否存在ip位址和網域名稱之間的對映關係,如果...
網路程式設計 四 輸入乙個URL後發生了什麼?
當在瀏覽器上輸入了乙個 例如按回車後發生了什麼?dns解析的過程就是尋找哪台機器上有你需要資源的過程,尋找的過程遵循就近原則。1 首先是查詢瀏覽器快取,瀏覽器會儲存一段時間內訪問過的一些 的dns資訊,不同瀏覽器儲存的時常不等。2 如果沒有找到對應的記錄,這個時候瀏覽器會嘗試呼叫作業系統快取來繼續查...
輸入url發生了什麼
1 瀏覽器的位址列輸入url並按下回車 2 dns解析url對應的ip 3 根據ip位址建立tcp連線 4 http發起請求 5 伺服器處理請求,瀏覽器接受http響應 6 渲染頁面,構建dom樹 7 關閉tcp連線 1 輸入url 常見的url是形如 http 這個網域名稱由三部分組成 協議名 網...