国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

expires cache-control

lncwwn / 1259人閱讀

摘要:協議與上述驗證協議最大的不同在于,他可以省略發(fā)送驗證請求環(huán)節(jié),不需要服務器的驗證,而直接使用本地緩存。不過,目前大部分服務器都會將兩者添加上,因為規(guī)定,如果和同時出現的話,會默認被覆蓋掉。秒表示在這個時間范圍內緩存是新鮮的無需更新。

Expires/Cache-Contro

Expires/Cache協議與上述驗證協議最大的不同在于,他可以省略發(fā)送驗證請求環(huán)節(jié),不需要服務器的驗證,而直接使用本地緩存。 通常這種方式,適用于,項目穩(wěn)定,版本迭代不多的時候。
Expires
在服務器端可以設置Expires的一個絕對時間。

//Response Headers
Expires:Tue, 03 May 2016 09:33:34 GMT

這告訴瀏覽器,在2016.5.3號之前,可以直接使用該文本的緩存副本。但是,可能會因為服務器和客戶端的GMT時間不同,會有一定的bug。 所以,這里只提議在長時間緩存的情況下使用。否則,應該選擇Cache-Control.
那在服務器端該怎么設置呢? 這里以nginx為例:

location ~* .(?:css|js)$ {
  expires 1d;
  access_log off;
  add_header Cache-Control "public";
}

通過expires設置過期時間為一天,此時,服務器會根據當前的時間,加上一天.同時添加Expires和Cache-Control頭部標簽。
即,得到的Response Header為:

Expires: Fri, 28 Feb 2014 10:42:09 GMT
Cache-Control: max-age=86400 //24*60*60

(HTTP規(guī)定,如果出現max-age和expires,則max-age默認覆蓋掉expires)
當expires為負數表示no-cache,正數或零表示max-age=time。
如果你不想緩存,可以直接設置:

expires -1; //永遠過期,Cache-Control: no-cache

詳細可以直接參閱:nginx配置

Cache-Control
這應該是HTTP1.1為了解決HTTP1.0中expires的時間差的bug,而新添加的一個tag. 他的配置項很多,其實完全都可以取代expires(現在大多數服務器都支持). 引用一段原話:

Cache-Control 頭在 HTTP/1.1 規(guī)范中定義,取代了之前用來定義響應緩存策略的頭(例如 Expires)。當前的所有瀏覽器都支持 Cache-Control,因此,使用它就夠了。
不過,目前大部分服務器都會將兩者添加上,因為HTTP規(guī)定,如果Cache-Control和expires同時出現的話,expires會默認被覆蓋掉。
此時,返回的響應碼不再是304(文件未改動),而是200(資源成功訪問).

當前每次發(fā)送請求之前瀏覽器會檢查緩存系統(tǒng)里,是否有相應文件的備份,如果有的話,則直接從本地模仿一個Response頭
理論知識鋪墊完畢,我們來take a look. 看看cache-control 有哪些可以配置的屬性(以下屬性都跟在cache-control后)

public: 共有緩存,可被緩存代理服務器緩存,比如CDN
private: 私有緩存,不能被共有緩存代理服務器緩存,可被用戶的代理緩存如瀏覽器。

max-age=[秒]:表示在這個時間范圍內緩存是新鮮的無需更新。類似Expires時間,不過這個時間是相對的,而不是絕對的。也就是某次請求成功后多少秒內緩存是新鮮的。

s-maxage=[秒]:類似max-age, 除了僅應用于共享緩存(如代理)。

no-cache:這里不是不緩存的意思,只是每次在使用緩存之前都強制發(fā)送請求給源服務器進行驗證,檢查文件該沒改變(其實這里和ETag/Last區(qū)別不大)

no-store:就是禁止緩存,不讓瀏覽器保留緩存副本

must-revalidate:告訴瀏覽器,你這必須再次驗證檢查信息是否過期, 返回的代號就不是200而是304了。

proxy-revalidate:類似must-revalidate,除了只能應用于代理緩存。
比如,這里我可以設置Cache-Control為:

//Response Headers
Cache-Control:private, max-age=0, must-revalidate

該文件是一個私有文件,只能被瀏覽器緩存,而不能被代理緩存。max-age標識該緩存立即過期,其實和no-cache實際上區(qū)別不大. 然后must-revalidate告訴瀏覽器,你必須給我再驗證文件過沒過期,比如接下來可能會驗證Last-Modified或者ETag.如果沒有過期則使用本地緩存.

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/79145.html

相關文章

  • 瀏覽器的緩存(1)

    摘要:當然,緩存不止這一種,比如在中定義的某些也可以實現自定義緩存的但,實際情況是,這些只能在本地文件中使用,如果是服務器則默認被覆蓋。 親,你知道緩存是什么嗎? 其實緩存就像辦健身卡,我第一次花了699辦了一年的卡之后,接下來的一年我都可以免費鍛煉。 在web 中, 我們交的不是錢,而是空間,我們耗費一定的空間之后,能夠獲得網頁打開速度質的飛躍。 當我們第一次訪問一個頁面時,我們需要交納一...

    dayday_up 評論0 收藏0
  • 瀏覽器的緩存(1)

    摘要:當然,緩存不止這一種,比如在中定義的某些也可以實現自定義緩存的但,實際情況是,這些只能在本地文件中使用,如果是服務器則默認被覆蓋。 親,你知道緩存是什么嗎? 其實緩存就像辦健身卡,我第一次花了699辦了一年的卡之后,接下來的一年我都可以免費鍛煉。 在web 中, 我們交的不是錢,而是空間,我們耗費一定的空間之后,能夠獲得網頁打開速度質的飛躍。 當我們第一次訪問一個頁面時,我們需要交納一...

    codecraft 評論0 收藏0
  • 一篇文章理解前端緩存

    摘要:說起前端緩存,這真是一個百看百懂,百懂百忘的重災區(qū)。作為一個前端開發(fā),我們一般不控制緩存,它對我們來說是透明的。名字解析工欲善其事必先利其器,在分析整個緩存流程之前,先明確常見的緩存名詞。它是一個通用頭,能分別在請求報文和響應報文中使用。 說起前端緩存,這真是一個百看百懂,百懂百忘的重災區(qū)。每次看的時候都覺得自己懂了,但是過兩天又忘了。究其原因,緩存對前端來說很重要,但是控制權卻是在瀏...

    Scliang 評論0 收藏0
  • 一篇文章理解前端緩存

    摘要:說起前端緩存,這真是一個百看百懂,百懂百忘的重災區(qū)。作為一個前端開發(fā),我們一般不控制緩存,它對我們來說是透明的。名字解析工欲善其事必先利其器,在分析整個緩存流程之前,先明確常見的緩存名詞。它是一個通用頭,能分別在請求報文和響應報文中使用。 說起前端緩存,這真是一個百看百懂,百懂百忘的重災區(qū)。每次看的時候都覺得自己懂了,但是過兩天又忘了。究其原因,緩存對前端來說很重要,但是控制權卻是在瀏...

    yiliang 評論0 收藏0
  • 一篇文章理解前端緩存

    摘要:說起前端緩存,這真是一個百看百懂,百懂百忘的重災區(qū)。作為一個前端開發(fā),我們一般不控制緩存,它對我們來說是透明的。名字解析工欲善其事必先利其器,在分析整個緩存流程之前,先明確常見的緩存名詞。它是一個通用頭,能分別在請求報文和響應報文中使用。 說起前端緩存,這真是一個百看百懂,百懂百忘的重災區(qū)。每次看的時候都覺得自己懂了,但是過兩天又忘了。究其原因,緩存對前端來說很重要,但是控制權卻是在瀏...

    RichardXG 評論0 收藏0

發(fā)表評論

0條評論

lncwwn

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<