(一)一次完整HTTP請求過程
在瀏覽器輸入地址,瀏覽器與訪問服務器之間會完成一次http請求,步驟如下:
1.DNS域名解析為服務器主機的IP地址;
2.根據IP,找到對應的服務器,發起TCP三次握手;
3.建立TCP連接后發起HTTP請求;
4.服務器得到HTTP請求,瀏覽器得到HTML代碼;
5.瀏覽器解析HTML代碼,並請求HTML代碼中的資源(如js,圖片,css,先得到代碼才能去找這些資源);
6.瀏覽器對頁面進行渲染並展示給用戶;
在上述過程,需注意:
1.DNS域名解析采用的是遞歸查詢的方式,過程是,先去找DNS緩存>緩存找不到就去找根域名服務器>根域名又會去找下一級>遞歸查找之后,找到了,給web瀏覽器。
2.為什么HTTP協議要基於TCP來實現? TCP是一個端到端的可靠的面向連接的協議,HTTP基於傳輸層TCP協議不用擔心數據傳輸的各種問題(當發生錯誤時,會重傳)。
3.最后一步瀏覽器是如何對頁面進行渲染的?
a)解析html文件構成 DOM樹;
b)解析CSS文件構成渲染樹;
c)邊解析,邊渲染 ;
d)JS 單線程運行,JS有可能修改DOM結構,意味着JS執行完成前,后續所有資源的下載是沒有必要的,所以JS是單線程,會阻塞后續資源下載;
(二)前端之HTTP協議
參考:https://www.cnblogs.com/taostaryu/p/9076789.html