如何實現200 from cache?

(這是在HTML中標籤發起的http請求頭)

(這是在腳本中發起的http請求頭)

後者可實現200 from cache,前者只能304,是因為前者的Cache-Control和If-Modified-Since,請教大家如何配置才能在請求頭中去掉上述兩項,如果是我基礎問題,請大家指出,我自己去學,謝謝大家。

------------------------------------------------修改分割線--------------------------------------------------------------------------

因為我把cache-control設置為public的緣故,故刷新時瀏覽器會默認不使用本地的緩存,而是請求伺服器,故返回了304,而腳本中的請求是不受刷新影響的,所以返回200


瀉藥……

你自己不說了 Cache-Control 的緣故么……

它的值被 max-age=0 了。

不走瀏覽器緩存,去server查詢了啊。

If-Modified-Since 就生效了,server查完了說沒過期,返回 304.

所以不是去掉 Cache-Control 和 If-Modified-Since 啊。

是要配置 Cache-Control 值 max-age 大於 0 啊。

看你問的是 Express 分類里的,那就去看看它的 api 文檔好了……

(都說偶不會 node 什麼的了…… 哎……還得去翻下它的api……)

比如 :express.static(root, [options])

options 中可設置名為 maxAge 的 key,單位是毫秒,默認值是 0

你設置下大於 0 的值不就好了……


後端用session的話max-age=0不可避。

一般是用另一個虛擬主機或是用另一台伺服器存靜態資源,然後單獨設置緩存過期。


為啥配了緩存不是 200 (from cache) ,常常還是 304 Not Modified?沒準是因為 ETag 干擾了緩存效果:

http://www.bokeyy.com/post/200-ok-from-cache-vs-304-not-modified.html


推薦閱讀:

「 http:// 」 中為何有兩根斜杠?
精神力量有多强大?
合併 HTTP 請求是否真的有意義?
國內有哪些互聯網公司已經開始使用 HTTP/2 了?
如何使用Nginx轉發非80埠的非HTTP請求?

TAG:Web開發 | 前端開發 | Nodejs | HTTP | Express框架 |