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

1.瀏覽器緩存?


瀏覽器緩存分為強(qiáng)緩存和協(xié)商緩存。當(dāng)客戶端請(qǐng)求某個(gè)資源時(shí),獲取緩存的流程如下:

先根據(jù)這個(gè)資源的一些 http header 判斷它是否命中強(qiáng)緩存,
如果命中,則直接從本地獲取緩存資源,不會(huì)發(fā)請(qǐng)求到服務(wù)器;

當(dāng)強(qiáng)緩存沒有命中時(shí),客戶端會(huì)發(fā)送請(qǐng)求到服務(wù)器,
服務(wù)器通過另一些request header驗(yàn)證這個(gè)資源是否命中協(xié)商緩存,稱為http再驗(yàn)證,
如果命中,服務(wù)器將請(qǐng)求返回,但不返回資源,
而是告訴客戶端直接從緩存中獲取,客戶端收到返回后就會(huì)從緩存中獲取資源;

強(qiáng)緩存和協(xié)商緩存共同之處在于,
如果命中緩存,服務(wù)器都不會(huì)返回資源;

區(qū)別是,強(qiáng)緩存不對(duì)發(fā)送請(qǐng)求到服務(wù)器,但協(xié)商緩存會(huì)。

當(dāng)協(xié)商緩存也沒命中時(shí),服務(wù)器就會(huì)將資源發(fā)送回客戶端。

當(dāng) ctrl+f5 強(qiáng)制刷新網(wǎng)頁時(shí),直接從服務(wù)器加載,跳過強(qiáng)緩存和協(xié)商緩存;

當(dāng) f5 刷新網(wǎng)頁時(shí),跳過強(qiáng)緩存,但是會(huì)檢查協(xié)商緩存;

2.如何實(shí)現(xiàn)sleep的效果(es5或者es6)?


(1)while循環(huán)的方式
function sleep(ms){
   var start=Date.now(),expire=start+ms;
   while(Date.now()<expire);
   console.log('1111');
   return;
}
執(zhí)行sleep(1000)之后,休眠了1000ms之后輸出了1111。上述循環(huán)的方式缺點(diǎn)很明顯,容易造成死循環(huán)。

(2)通過promise來實(shí)現(xiàn)
function sleep(ms){
  var temple=new Promise(
  (resolve)=>{
  console.log(111);setTimeout(resolve,ms)
  });
  return temple
}
sleep(500).then(function(){
   //console.log(222)
})
//先輸出了111,延遲500ms后輸出222

(3)通過async封裝
function sleep(ms){
  return new Promise((resolve)=>setTimeout(resolve,ms));
}
async function test(){
  var temple=await sleep(1000);
  console.log(1111)
  return temple
}
test();
//延遲1000ms輸出了1111

(4).通過generate來實(shí)現(xiàn)
function* sleep(ms){
   yield new Promise(function(resolve,reject){
             console.log(111);
             setTimeout(resolve,ms);
        })  
}
sleep(500).next().value.then(function(){console.log(2222)})

3.http和https的基本概念?


http: 超文本傳輸協(xié)議,是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,
是一個(gè)客戶端和服務(wù)器端請(qǐng)求和應(yīng)答的標(biāo)準(zhǔn)(TCP),
用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議,
它可以使瀏覽器更加高效,使網(wǎng)絡(luò)傳輸減少。

https: 是以安全為目標(biāo)的HTTP通道,簡(jiǎn)單講是HTTP的安全版,
即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,
因此加密的詳細(xì)內(nèi)容就需要SSL。
https協(xié)議的主要作用是:
建立一個(gè)信息安全通道,來確保數(shù)組的傳輸,確保網(wǎng)站的真實(shí)性。

4.http和https的區(qū)別?

http傳輸?shù)臄?shù)據(jù)都是未加密的,也就是明文的,
網(wǎng)景公司設(shè)置了SSL協(xié)議來對(duì)http協(xié)議傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,
簡(jiǎn)單來說https協(xié)議是由http和ssl協(xié)議構(gòu)建的可進(jìn)行加密傳輸和身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,
比http協(xié)議的安全性更高。

主要的區(qū)別如下:
Https協(xié)議需要ca證書,費(fèi)用較高。
http是超文本傳輸協(xié)議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)議。
使用不同的鏈接方式,端口也不同,一般而言,http協(xié)議的端口為80,https的端口為443
http的連接很簡(jiǎn)單,是無狀態(tài)的;
HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,比http協(xié)議安全。

5.https協(xié)議的工作原理?

客戶端在使用HTTPS方式與Web服務(wù)器通信時(shí)有以下幾個(gè)步驟:

客戶使用https url訪問服務(wù)器,則要求web 服務(wù)器建立ssl鏈接。
web服務(wù)器接收到客戶端的請(qǐng)求之后,會(huì)將網(wǎng)站的證書(證書中包含了公鑰),
返回或者說傳輸給客戶端。
客戶端和web服務(wù)器端開始協(xié)商SSL鏈接的安全等級(jí),也就是加密等級(jí)。
客戶端瀏覽器通過雙方協(xié)商一致的安全等級(jí),建立會(huì)話密鑰,
然后通過網(wǎng)站的公鑰來加密會(huì)話密鑰,并傳送給網(wǎng)站。
web服務(wù)器通過自己的私鑰解密出會(huì)話密鑰。
web服務(wù)器通過會(huì)話密鑰加密與客戶端之間的通信。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 我所知道的各大廠所用技術(shù)-不定時(shí)更新 京東 —— react 美團(tuán) —— react 華宇 —— vue+reac...
    蔣小小喵閱讀 2,688評(píng)論 0 7
  • 面試題一:https://github.com/jimuyouyou/node-interview-questio...
    R_X閱讀 1,760評(píng)論 0 5
  • 心好像越來越堅(jiān)硬了,不愿辯駁,不愿爭(zhēng)吵,傷心了,自己捂捂就好,擁有一顆敏感細(xì)碎的心,又怎能奢求一份真愛呢
    Skylt閱讀 191評(píng)論 0 0
  • 臨江仙·送錢穆父 一別都門三改火,天涯踏盡紅塵。 依然一笑作春溫。 無波真古井,有節(jié)是秋筠。 惆悵孤帆連夜發(fā),送行...
    梅河閱讀 354評(píng)論 0 1
  • 01 你上一條朋友圈是什么時(shí)候發(fā)的? 在朋友圈里面,你一般都發(fā)些什么內(nèi)容?今天我做了件讓自己特別自豪的,發(fā)個(gè)朋友圈...
    余亞軍閱讀 1,588評(píng)論 4 22

友情鏈接更多精彩內(nèi)容