撩課 Web大前端每天5道面試題 Day27

2021-09-24 07:55:59 字數 2095 閱讀 9997

瀏覽器快取分為強快取和協商快取。當客戶端請求某個資源時,獲取快取的流程如下:

先根據這個資源的一些 http header 判斷它是否命中強快取,

如果命中,則直接從本地獲取快取資源,不會發請求到伺服器;

當強快取沒有命中時,客戶端會傳送請求到伺服器,

伺服器通過另一些request header驗證這個資源是否命中協商快取,稱為http再驗證,

如果命中,伺服器將請求返回,但不返回資源,

而是告訴客戶端直接從快取中獲取,客戶端收到返回後就會從快取中獲取資源;

強快取和協商快取共同之處在於,

如果命中快取,伺服器都不會返回資源;

區別是,強快取不對傳送請求到伺服器,但協商快取會。

當協商快取也沒命中時,伺服器就會將資源傳送回客戶端。

當 ctrl+f5 強制重新整理網頁時,直接從伺服器載入,跳過強快取和協商快取;

當 f5 重新整理網頁時,跳過強快取,但是會檢查協商快取;

複製**

(1)while迴圈的方式

function sleep(ms)

執行sleep(1000)之後,休眠了1000ms之後輸出了1111。上述迴圈的方式缺點很明顯,容易造成死迴圈。

(2)通過promise來實現

function sleep(ms));

return temple

}sleep(500).then(function

())//先輸出了111,延遲500ms後輸出222

(3)通過async封裝

function sleep(ms)

async function

test

()test();

//延遲1000ms輸出了1111

(4).通過generate來實現

function* sleep(ms))

}sleep(500).next().value.then(function

())複製**

http: 超文字傳輸協議,是網際網路上應用最為廣泛的一種網路協議,

是乙個客戶端和伺服器端請求和應答的標準(tcp),

用於從www伺服器傳輸超文字到本地瀏覽器的傳輸協議,

它可以使瀏覽器更加高效,使網路傳輸減少。

https: 是以安全為目標的http通道,簡單講是http的安全版,

即http下加入ssl層,https的安全基礎是ssl,

因此加密的詳細內容就需要ssl。

https協議的主要作用是:

建立乙個資訊保安通道,來確保陣列的傳輸,確保**的真實性。

複製**

http傳輸的資料都是未加密的,也就是明文的,

網景公司設定了ssl協議來對http協議傳輸的資料進行加密處理,

簡單來說https協議是由http和ssl協議構建的可進行加密傳輸和身份認證的網路協議,

比http協議的安全性更高。

主要的區別如下:

https協議需要ca證書,費用較高。

http是超文字傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議。

使用不同的鏈結方式,埠也不同,一般而言,http協議的埠為80,https的埠為443

http的連線很簡單,是無狀態的;

https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全。

複製**

客戶端在使用https方式與web伺服器通訊時有以下幾個步驟:

客戶使用https url訪問伺服器,則要求web 伺服器建立ssl鏈結。

web伺服器接收到客戶端的請求之後,會將**的證書(證書中包含了公鑰),

返回或者說傳輸給客戶端。

客戶端和web伺服器端開始協商ssl鏈結的安全等級,也就是加密等級。

客戶端瀏覽器通過雙方協商一致的安全等級,建立會話金鑰,

然後通過**的公鑰來加密會話金鑰,並傳送給**。

web伺服器通過自己的私鑰解密出會話金鑰。

web伺服器通過會話金鑰加密與客戶端之間的通訊。

複製**

撩課 Web大前端每天5道面試題 Day34

keys 是 react 用於追蹤哪些列表中元素被修改 被新增或者被移除的輔助標識。render 在開發過程中,我們需要保證某個元素的 key 在其同級元素中具有唯一性。在 react diff 演算法中 react 會借助元素的 key 值來判斷該元素是新近建立的還是被移動而來的元素,從而減少不必...

撩課 Web大前端每天5道面試題 Day34

keys 是 react 用於追蹤哪些列表中元素被修改 被新增或者被移除的輔助標識。render 在開發過程中,我們需要保證某個元素的 key 在其同級元素中具有唯一性。在 react diff 演算法中 react 會借助元素的 key 值來判斷該元素是新近建立的還是被移動而來的元素,從而減少不必...

撩課 Web大前端每天5道面試題 Day29

使用https協議可認證使用者和伺服器,確保資料傳送到正確的客戶機和伺服器 https協議是由ssl http協議構建的可進行加密傳輸 身份認證的網路協議,要比http協議安全,可防止資料在傳輸過程中不被竊取 改變,確保資料的完整性。https是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅...