前端面試之HTTP快取的那些事(四)

2021-10-05 07:56:32 字數 1251 閱讀 3197

http快取大概會被問到這些方面

說一下http的強快取,協商快取吧

什麼叫強快取,協商快取

前端cookie,localstorage,sessionstorage

狀態碼304

1、當我們需求向伺服器請求資源的時候,會首先判斷是否有快取,如果沒有,正常的向伺服器發出請求。

2、如果有快取,就進入強快取的範圍(強快取級別高於協商緩衝,並且可以同時存在)。首先判斷緩衝是否還在有效期中,在的話,就將內容返回客戶端。不在,則進入協商緩衝。

3、協商快取將判斷是否存在etag和last-modified首部,通過這些首部驗證資源是否發生過變化,如果未發生變化,則表示命中了協商快取,返回內容。反之不。

強快取強快取利用頭部 expires和cache-control:max-age來實現

兩者均是為了標識資源過期時間的

expires是http1.0的產物,但是客戶端和服務端的時間機制不一樣,絕對時間

cache-control 這是http 1.1的產物,他的max-age是乙個相對時間,設定最大使用期

強快取過程

當我們首次請求資源的時候,伺服器將內容返回給我們的時候,會在返回的(response)中為expires或cache-control中寫入過期時間,

當我們再一次的請求這個資源的時候,快取就會進行之前寫的123步驟,當進入第二步驟的時候,快取會對data(也是乙個通用首部,檢視response即可發現)與我們的expires或cache-control進行比較,從而判斷該副本資源是否可以使用

協商緩衝

協商緩衝過程

首次請求資源時,伺服器在返回資源的同時,會在response headers中寫入last-modified首部,表示該資源在伺服器上的最後修改時間。

當再次請求該資源時,會在request headers 中寫入if-modified-since首部,此時的if-modified-since的值是首次請求資源時所返回的last-modified的值。

伺服器接收到請求後,會根據if-modified-since的值判斷資源在該日期之後是否發生過變化。

如果沒有,則會返回304 not modified;如果變化了,則會返回變化過後的資源,同時更新last-modified的值。

前端面試之HTTP

在瀏覽器和伺服器之間,有許多計算機和其他裝置 了http訊息。簡而言之,他們中間的部分就是 http是簡單的 http是可擴充套件的 http是無狀態 有會話的 http是無狀態的 在同乙個連線中,兩個執行成功的請求之間是沒有關係的。這就帶來了乙個問題,使用者沒有辦法在同乙個 中進行連續的互動,比如...

前端面試之前要準備的那些事

先說一下關於工作簡歷的一些常見的問題,這是最基礎的一步,萬事開頭難,寫好簡歷就是求職路上最簡單也是最關鍵的一步,乙份好的簡歷不但可以讓你從眾多簡歷中脫穎而出,還能夠讓公司的人事對你的印象深刻。問題一,怎麼寫簡歷?對於剛剛畢業的應屆生來說,寫簡歷是一件令人頭疼的事情,因為根本就不知道該如何去寫簡歷,寫...

前端面試之前要準備的那些事

先說一下關於工作簡歷的一些常見的問題,這是最基礎的一步,萬事開頭難,寫好簡歷就是求職路上最簡單也是最關鍵的一步,乙份好的簡歷不但可以讓你從眾多簡歷中脫穎而出,還能夠讓公司的人事對你的印象深刻。問題一,怎麼寫簡歷?對於剛剛畢業的應屆生來說,寫簡歷是一件令人頭疼的事情,因為根本就不知道該如何去寫簡歷,寫...