http的緩存分爲強制緩存和對比緩存,二者的區別在於,強制緩存只要設置的時間不過時,就能夠直接拿去用,而不用向服務器再一次發送請求。而對比緩存無論緩存是否有效,都須要向服務器發送請求。瀏覽器
其過程以下:緩存
1. 瀏覽器會先查詢Cache-Control來判斷內容是否過時,若是沒有過時,直接讀取瀏覽器緩存文件。(強制緩存)服務器
2. 在瀏覽器上判斷上次文件返回頭中是否含有ETag,若是有則連同If-None-Match一塊兒向服務器發送請求,服務器判斷ETag是否失效,有效返回304讀取緩存數據(對比緩 存)。失效返回200。ETag是有服務器生成的當前資源的惟一標識,若是資源發生改變,服務器會發送一個新的Etag。blog
3. 在瀏覽器端判斷上次文件返回頭中是否含有Last-Modified,有則連同If-Modified-Since一塊兒想服務器發送請求,服務器判斷Last-Modefied是有失效,有效返回304讀取緩 存數據(對比緩存),失效返回200。資源
4. 若是ETag和Last-Modefied都沒有,則直接向服務器發送請求內容。ast