1.url輸入回車
2.dns解析 -> 解析什麼?變成什麼
url 相對伺服器的ip位址
**伺服器的ip位址
3.瀏覽器網路向相應伺服器傳送tcp/ip連線請求
三次握手
4.建立tcp/ip連線
5.瀏覽器網路發起http請求
6.等待 響應過程 wariting
8.解析html
四次揮手
10.時間線
11.呈現頁面
1. 網域名稱dns解析
- 瀏覽器dns快取
- 系統dns快取
- 路由器dns快取
- 網路運營商dns快取
- 遞迴搜尋......
2. tcp連線: tcp三次握手
- 第一次握手,由瀏覽器發起,告訴伺服器我要傳送請求了
- 第二握手,由伺服器發起,告訴瀏覽器我準備接受了,你趕緊傳送吧
- 第三次握手,由瀏覽器傳送,告訴伺服器,我馬上就發了,準備接受吧
3. 傳送請求
- 請求報文:http協議的通訊內容
4. 接受響應
- 響應報文
5. 渲染頁面
(1.解析html內容 產生dom樹 2. 解析css產生css rule tree 3.dom和cssom合併後的render tree 4.瀏覽器計算layout 開始渲染)
http 常見的狀態碼
400的錯誤是由於傳送請求引數沒有成功
原因:引數名稱型別沒有對上;或者引數格式不正確
204 代表響應報文中包含若干首部和乙個狀態行,但是沒有實體的主體內容 (沒有body內容)
400 前後端json物件中的屬性名與後端接收請求的實體類的屬性名不對應 (前後端資料傳遞沒對應上)。請求報文存在語法錯誤
401 傳送的請求需要有通過http認證的資訊
403 表示對請求資源的訪問被伺服器拒絕,可在實體主體部分返回原因描述
200: '伺服器成功返回請求的資料。',
201: '新建或修改資料成功。',
202: '乙個請求已經進入後台排隊(非同步任務)。',
204: '刪除資料成功。',
400: '發出的請求有錯誤,伺服器沒有進行新建或修改資料的操作。',
401: '使用者沒有許可權(令牌、使用者名稱、密碼錯誤)。',
403: '使用者得到授權,但是訪問是被禁止的。',
404: '發出的請求針對的是不存在的記錄,伺服器沒有進行操作。',
406: '請求的格式不可得。',
410: '請求的資源被永久刪除,且不會再得到的。',
422: '當建立乙個物件時,發生乙個驗證錯誤。',
500: '伺服器發生錯誤,請檢查伺服器。',
501:伺服器不支援當前請求所需要的某個功能
502: '閘道器錯誤。',
503: '服務不可用,暫時處於超負載或正在停機維護,無法處理請求',
504: '閘道器超時。',
通用首部 作用 (請求報文和響應報文都可能使用)
cache-control 控制快取的行為: no-cache(強制向伺服器再次驗證) no-store(不做任何快取) max-age=11111(資源可快取最大時間 秒)
public (客戶端、**伺服器都可利用快取) private (**伺服器不可用快取)
connection 瀏覽器想要優先使用的鏈結型別: keep-alive close 開啟和關閉持久連線
date 建立報文時間
pragma 只用於請求報文,客戶端要求中間伺服器不返回快取的資源
via **伺服器相關資訊,沒經過乙個**伺服器就會新增相關資訊,用逗號分割
transfer-encoding 傳輸編碼方式: chunked分塊傳輸
upgeade 要求客戶端使用的公升級協議,需配合connection:upgrade一起使用:websocket
warning 快取相關問題的警告
請求首部 作用(請求報文專用)
accept-encoding 能正確接收的字符集: unicode gzip deflate
authorization 客戶端認證資訊:bearer dasfasfa123,一般存token 用
cookie 傳送給伺服器的cookie資訊
expect 期待伺服器的指定行為
host 伺服器的網域名稱,用於區分單台伺服器多個網域名稱的虛擬主機,是http/1.1唯一必須包含的字段
user-agent 客戶端資訊
referer 請求發起頁面的原始url
te 傳輸編碼方式
ajax的open()方法有3個引數
1 method (get / post)
2 url
3 boolean (預設是非同步 true)
當該boolean值為true時,伺服器請求是非同步進行的,也就是指令碼執行send方法後不等待伺服器的執行結果,而是繼續執行指令碼**
當該boolean值為false時,伺服器請求是同步進行的,也就是指令碼執行send方法後等待
預先載入
1.dns預取
2.資源預取
3.tcp preconnect
如何提高載入速度
1.合併請求:nginx模組,sprite雪碧圖
2.快取:from cache(memory disk),localstorage,本地快取策略,http頭(結合業務)
3.tcp網路連線優化,tcp調優,http/2,keep-alive
4.硬體:加大頻寬,使用cdn(物件儲存)
5.資源大小:gzip,webp,image壓縮,cookie體積
6.預載入:多個cdn網域名稱,dns預取,非同步讀取js
從輸入URL到頁面渲染
url請求過程 瀏覽器收到http響應 reference 前人栽樹,後人乘涼,以下為學習筆記。從輸入url到頁面展示,這中間發生了什麼?這是一道經典面試題,涉及到了網路 作業系統 web 等一系列的知識。當我們在位址列中輸入url並按下回車後,瀏覽器裡發生第一件事是觸發解除安裝事件,即 befor...
從輸入URL到頁面載入完的過程
乙個http請求的過程 dns lookup 先獲得url對應的ip位址 socket connect 瀏覽器和伺服器建立tcp連線 send request 傳送http請求 content download 伺服器傳送響應 如果下到物理層去講就有點耍流氓了,如果這些你還認可這幾個步驟的話,我們就...
從輸入url到頁面渲染出來過程
在瀏覽器輸入url後的訪問 url的組成協議 網域名稱 有時候也是ip,埠號 數字表示,若為http的預設值 80 可省略 路徑 以 字元區別路徑中的每乙個目錄名稱 查詢引數 get模式的窗體引數,以 字元為起點,每個引數以 隔開,再以 分開引數名稱與資料,通常以utf8的url編碼,避開字元衝突的...