**當在瀏覽器輸入url,向服務器發送請求,瀏覽器都做了些什么?**
http事務:從瀏覽器傳給服務器,服務器反回內容給瀏覽器,
這一個完整的過程就叫做http的一個事務。
## 1、http請求階段:
1)瀏覽器把url發送給DNS服務器;
2)DNS服務器會根據IP找到對應的服務器;
3)服務器接收到請求,客戶端和服務器已經產生了連接;
## 2、http響應階段:
4)服務器接收到請求后,根據路徑,找到相應的項目;
5)服務器找到之后,服務器立即把一些響應信息放在響應頭中,通過http發送給客戶端,同時進行數據整理;
6)把整理出來的數據,通過http發送給客戶端,直到客戶端接收完畢;
## 3、瀏覽器渲染階段:
7)瀏覽器拿到從服務器傳輸過來的數據文件;
8)先遍歷HTML,形成DOM樹;
9)代碼從上到下解析,形成CSS樹;
10)DOM樹和CSS樹重新組成render樹;
11)瀏覽器進行描繪和渲染;
# http的三次握手和四次揮手:
```
瀏覽器在給服務器傳輸數據之前,有三次握手,握手成功之后,
才可以傳輸數據
三次握手
1、瀏覽器需要先發送SYN碼,客戶端請求和服務器建立連接;
2、服務器接收到SYN碼,再發送給客戶端SYN+ACK碼,我可以建
立連接;
3、客戶端接收到ACK碼,驗證這個ACK是否正確,如果正確則客
戶端和服務端則建立起數據連接;雙方的數據發送通道都將開啟;
四次揮手:
1、當客戶端無數據要傳輸了,會發送FIN碼告訴服務器,我發送
完畢了;
2、當服務端接收完畢后,告訴客戶端ACK碼,告訴客戶端你可以
把數據通道關閉了;
3、當服務器發送完畢之后,也會發送FIN碼,告訴瀏覽器,數據發
送完畢;
4、當客戶端接收完畢 之后,同樣發送ACK碼,告訴服務器,數據
接收完畢,你可以關閉;
```
?三次握手和四次揮手的好處:確保數據的安全和完整
響應頭:服務器會告訴瀏覽器數據的長度,瀏覽器數據長度和響應頭數據長度相同,說明數據已經接收完畢了。
- git-第一天
- Git-第二天
- git-第三天
- http-基礎
- HTTP構成和狀態碼
- 瀏覽器輸入URL,經歷的過程
- TCP/IP 詳解三次握手 四次揮手
- http-DNS系統
- http與https之間的區別
- HTTPS握手和HTTP握手
- HTTP小試牛刀
- Tcp初探
- TCP報文格式
- HTML5
- HTML基礎
- Mock
- css 選擇器
- css 動畫
- css 定位
- position/display/float/z-index第一課時
- 行內、塊、脫標 三種狀態下的元素如何實現、水平、垂直居中
- clientHeight/offsetHeight/scrollHeight
- js 數據類型
- 變量提升
- 堆棧關系