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

2022-07-09 05:54:11 字數 2048 閱讀 9755

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

先根據這個資源的一些 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道面試題 Day27

瀏覽器快取分為強快取和協商快取。當客戶端請求某個資源時,獲取快取的流程如下 先根據這個資源的一些 http header 判斷它是否命中強快取,如果命中,則直接從本地獲取快取資源,不會發請求到伺服器 當強快取沒有命中時,客戶端會傳送請求到伺服器,伺服器通過另一些request header驗證這個資...

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

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

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

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