自己總結分析。
1.根據網域名稱,進行dns網域名稱解析,獲得ip位址。
2.根據ip位址,建立tcp連線
3.建立tcp連線後,向ip位址傳送http請求
4服務端處理請求
5服務端返回響應結果
6 關閉tcp連線
7瀏覽器解析html
8瀏覽器渲染資料展示
q1:現代瀏覽器在與伺服器建立了乙個 tcp 連線後是否會在乙個 http 請求完成後斷開?什麼情況下會斷開?
這個問題實則實在問http/1.0 與http/1.1的區別。再http/1.0中,伺服器再傳送玩乙個http響應後,會斷開tcp連線,但是
這樣每次請求都會重新建立和斷開tcp連線,代價過大。某些伺服器對 connection: keep-alive 的 header 進行了支援。就是完成乙個http請求後,不斷開tcp連線,這樣之後傳送請求的就不需要重新建立連線,以及如果維持連線,ssl的開銷也會避免。http/1.1就把connection頭寫進標準,並預設開啟持久連線,keep-live,除非請求中寫明connection:close。
q2:乙個 tcp 連線可以對應幾個 http 請求?
在第乙個問題的基礎上,如果維持連線的狀態下,可以處理多個請求。
q3:乙個 tcp 連線中 http 請求傳送可以一起傳送麼(比如一起發三個請求,再三個響應一起接收)?
http/1.1存在pipelining技術可以完成這個多個請求同時傳送,但是由於瀏覽器預設關閉,所以可以認為這是不可以的。
在 http2 中由於 multiplexing 特點的存在,多個 http 請求可以在同乙個 tcp 連線中並行進行。
瀏覽器輸入URL到返回頁面的全過程
問題描述 第一步,解析網域名稱,找到主機 正常情況下,瀏覽器會快取dns一段時間,一般2分鐘到30分鐘不等。如果有快取,直接返回ip。快取中如果沒有查到ip,瀏覽器會做系統呼叫,讀取主機的hosts檔案,如果找到,直接返回ip。hosts檔案裡面還是沒有找到,則直接去路由器中尋找dns快取,一般這個...
瀏覽器輸入url 到返回頁面全流程
使用者從輸入 url 到瀏覽器響應,呈現給使用者的具體過程 1 使用者在輸入欄輸入位址 1 如果有 beforeunload 事件會先執行判斷繼續還是跳出操作 2 瀏覽器程序識別是 位址還是關鍵字檢索 3 將正確的 url 位址傳送給網路程序 2 網路程序檢視有沒有快取 1 有快取直接返回資料 2 ...
瀏覽器輸入URL到響應頁面的全過程
瀏覽器輸入url到響應頁面的全過程 b s網路架構從前端到後端都得到了簡化,都基於統一的應用層協議http來互動資料,http協議採用無狀態的短鏈結的通訊方式,通常情況下,一次請求就完成了一次資料互動,通常也對應乙個業務邏輯,然後這次通訊連線就斷開了。採用這種方式是為了能夠同時服務更多的使用者,因為...