1. TCP 三次握手與四次揮手
- 三次握手
目的:(建立連接) 爲了防止server端一直等待,浪費資源。
- 四次揮手
目的: (斷開連接) 中間兩步: ACK是發送數據並沒有關閉的意思。只有收到fin才表示關閉連接。
time_out階段:主動關閉的一方在回覆完對方的揮手後進入一個長期的狀態,這個標準持續的時間是4分鐘(2MSL)。
參考鏈接:跟着動畫來學習TCP三次握手和四次揮手
2. HTTP 與HTTPS
- HTTP:超文本傳輸協議,是一個基於請求與響應模式的、無狀態的、應用層的協議
- HTTP 1.1 特點: 1.持續連接的機制 2.管線化(可同時發送多個HTTP請求)3. 斷點續傳
- HTTPS:HTTP+ssl加密處理
參考: 談談 HTTPS
3. HTTP緩存
目的:有利於web性能優化
內容:(Catch-Control,Expires,ETag)
- Catch-Control:max-age=30 表示客戶端將該緩存最多保存30s
瀏覽器請求時發現是相同的URL,在設置時間內,直接從內存裏返回已經緩存的數據,沒有向服務器發送請求。 - Expires:是以前用來控制緩存的http頭。
響應頭包含日期/時間(本地時間,不靠譜),即在此之後,響應過期。
兩者的區別:
1. Catch-Control 設置時間長度
2. Expires 設置時間點
- Etag : 設置Etag,下一次請求時,瀏覽器會把上一次響應的那個Etag的值放到if-None-Match裏,如果請求和響應的相同,說明不需要重新下載這個js文件,name返回304(Not Modifined),直接使用緩存內容。
與Catch-Control的區別:
- Catch-Control:直接不發送請求
- Etag:發送請求有響應,但不下載響應體。