1. 程式人生 > >愛創課堂每日一題第二十二天-什麽是Etag?

愛創課堂每日一題第二十二天-什麽是Etag?

前端 前端學習 前端入門

當發送一個服務器請求時,瀏覽器首先會進行緩存過期判斷。瀏覽器根據緩存過期時間判斷緩存文件是否過期。
情景一:若沒有過期,則不向服務器發送請求,直接使用緩存中的結果,此時我們在瀏覽器控制臺中可以看到 200 OK(from cache) ,此時的情況就是完全使用緩存,瀏覽器和服務器沒有任何交互的。
情景二:若已過期,則向服務器發送請求,此時請求中會帶上①中設置的文件修改時間,和Etag
然後,進行資源更新判斷。服務器根據瀏覽器傳過來的文件修改時間,判斷自瀏覽器上一次請求之後,文件是不是沒有被修改過;根據Etag,判斷文件內容自上一次請求之後,有沒有發生變化
情形一:若兩種判斷的結論都是文件沒有被修改過,則服務器就不給瀏覽器發index.html的內容了,直接告訴它,文件沒有被修改過,你用你那邊的緩存吧—— 304 Not Modified,此時瀏覽器就會從本地緩存中獲取index.html的內容。此時的情況叫協議緩存,瀏覽器和服務器之間有一次請求交互。

情形二:若修改時間和文件內容判斷有任意一個沒有通過,則服務器會受理此次請求,之後的操作同①
① 只有get請求會被緩存,post請求不會

愛創課堂每日一題第二十二天-什麽是Etag?