last-modified
是檢查一個資源最後修改時間。如果時間過期了則傳回資源内容。如果沒過期,傳回304。
當last-modified更新了,但是資源本質上沒有更新,比如資源是a,last-modified改了,但是資源還是a。這個時候傳給用戶端是同一個資源,完全沒有必要。
于是在1.1引入了etag。etag在資源有本質變化的時候會生成一個etag,如果etag沒有變化,則傳回304。這樣保證資源最大限度的304。
expires是一個比較弱的頭。隻是告訴用戶端,這個時間内,你可以不去伺服器請求新的資源。完全用用戶端的高速緩存。