問題背景
HTTP協議中GET請求方法中的請求頭內容 : If-Modified-Since
具體描述
HTTP請求頭的IMS(If-Modified-Since):瀏覽器緩存記錄的該文件的最后服務器修改時間。
瀏覽器發送HTTP請求時,把If-Modified-Since一起發到服務器去,服務器會把這個時間與服務器上實際文件的最后修改時間進行比較。
如果時間一致,那么返回HTTP狀態碼304(Not Modified),客戶端接到之后,直接把本地緩存文件顯示到瀏覽器中。
如果時間不一致,就返回HTTP狀態碼200和新的文件內容,客戶端接到之后,會丟棄舊文件,把新文件緩存起來,並顯示到瀏覽器中。
瀏覽器第一次訪問服務器的文件時。不會攜帶If-Modified-Since,因為未有本地緩存。
服務器收到請求,開始處理。響應2000,http頭有標簽:Last-Modified(date),即服務器本地記錄的文件最后修改時間。
瀏覽器收到響應,緩存到本地。
瀏覽器第二次請求時,攜帶If-Modified-Since(date),
服務器比較If-Modified-Since(date),是否與服務器本地記錄相同。決定返回狀態200還是304.