/// BANGBOO BLOG ///

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

March 8, 2016

Cache

■画像のキャッシュ
ページは新しいが、画像は古いキャッシュを参照している理由
影響因子:ブラウザキャッシュ>プロキシ>ファイアウォール>ロードバランサ>htaccessのようなサーバ設定
基本的な考え方:キャッシュはPHPページ等でのディレクティブで制御されるが、特に画像等はプロキシではキャッシュ期間が優先される場合がある(ブラウザ更新ボタンでスキップできるが、、)

1)ページ遷移時は、キャッシュがありExpire等が効いている場合は、完全にローカルキャッシュだけを使ってそもそもリクエストを送っていません。
(ちなみに、ページを進んで(ブラウザの戻る機能で)戻ったときは大元のHTMLを含めてキャッシュが使われたりします。)
2)リロードは大元のHTMLを受け取ったら、そのページ内のリソースについてレスポンスヘッダを確認しに行っています。その結果304 Not Modifiedが帰ってきて、実際にはキャッシュを使います。
3)スーパーリロードCtrl+F5(Ctrl+更新ボタン)はキャッシュに関係なく、すべてのリソースを取得しなおしています。
リロードをしても表示されない時ブラウザのキャッシュ削除するといいのは、この辺りが上手く行っていないからだと言える

どういうリクエスト/レスポンスの流れ?(304はトラフィックは減るが比較でサーバリソースを食う場合もある)
1)ブラウザのキャッシュ :Expire/max-ageのあるとき?、あるいはブラウザキャッシュ削除
2)ブラウザ→プロキシのキャッシュ :Cache refreshでの間隔で処理、あるいはブラウザ更新ボタン
3)ブラウザ→プロキシ→サーバで304 not modefied(ブラウザ/プロキシのキャッシュが使用される)

http://www.atmarkit.co.jp/ait/articles/0305/10/news002.html
http://blog.redbox.ne.jp/http-header-tuning.html

HTTPヘッダ(htttpヘッダはプログラムで制御できる)
 Pragma
 •Cache-Control(汎用)-no-cache, max_ageディレクティブなど
 •Age(レスポンス)
 •Date(汎用)
 •Expires(エンティティ)
 •Last-Modified(エンティティ)
 •If-Modified-Since(リクエスト)
 •If-Unmodified-Since(リクエスト)
 •ETag(レスポンス)
 •If-Match(リクエスト)
 •If-None-Match(リクエスト)
 •Range(リクエスト)
 •If-Range(リクエスト)
 ブラウザに一切キャッシュさせたくない場合Cache-Control "no-cache" この辺りの動作は環境に依存する
 ブラウザにキャッシュさせるが変更ないか都度確認Cache-Control "max-age=0" or Expires "Mon, 26 Jul 1997 05:00:00 GMT"
 ブラウザにキャッシュさせ都度確認はそれほど必要ないCache-Control "max-age=秒数" or Expires "Mon, 26 Jul 2020 05:00:00 GMT"
 Cache-Control: private webサーバから返されるコンテンツがただ一人のユーザのためのもので複数のユーザが共有されるキャッシュに記録されるべきではない
 Cache-Control: must-revalidate キャッシュに記録されているコンテンツが現在も有効であるか否かをWebサーバに必ず問い合わせよ
metaタグ
 <meta http-equiv="Pragma" content="no-cache">
 <meta http-equiv="Cache-Control" content="no-cache">
 <meta http-equiv="Expires" content="0">キャッシュの有効期限,0=キャッシュさせない
 no-store:キャッシュするな→ Webサーバから返却されるコンテンツをキャッシュするな
 no-cache:キャッシュしても良いが、確認してから使え→ キャッシュは使用しても良いが現在でも有効か否か確認した上で使用しろ
 no-cacheがキャッシュを使用しない設定に思えるが実際には、no-storeがキャッシュをさせない設定。大体の場合ではno-cacheでOK
シリアルの変数を付ける
 <img src="http://aaa/v.gif?27" />
 <link type="text/css" rel="stylesheet" href="styles.css?20130420-1100">
.htaccess
 <Files ~ ".(gif|jpe?g|png|ico|js|gz|otf|ttf|eot|woff)$">
   Header set Cache-Control "max-age=2592000"
 </Files>
プロキシサーバ
  基本はどれだけの期間キャッシュを保つかのCache refresh設定、他はhttpヘッダのディレクティブで制御されると考える
  Cache Refresh 設定 HTTPドキュメントの場合(4-8時間、5min、20%等複合)の更新間隔を保つ、ブラウザ更新ボタンで取得も可能だし
  20%の意味は、1週間前の10080前にできた場合これを1440/10080=14.2%となってまだ新しいとみなす
  Last-Modified 要素を 0.1 に設定した場合、最後の変更が 10 日前に行われたドキュメントのケースだとプロキシはこの要素の意味を、ドキュメントが 1 日 (10 * 0.1 = 1) の間変更されない、と解釈します。その場合、ドキュメントのチェックが 1 日以内に実行されている場合、プロキシはキャッシュからドキュメントを返します
  使用されたキャッシュの回数
  キャッシュの容量
  Internet Cache Protocol (ICP) はキャッシュ(プロキシ)間の対話を可能で履歴を共有
  (Sun Java System Web Proxy Server) https://docs.oracle.com/cd/E19636-01/819-3160/agcache.html
 http://trafficserver.readthedocs.io/ja/latest/admin-guide/configuration/cache-basics.en.html
 (Squid) http://d.hatena.ne.jp/takami_hiroki/20101006/p1
 (Vanish) http://www.kumoyanet.com/420/

twitter
Hatena
Google Buzz
newsing
Yahoo!
Buzzurl
Technorati
del.icio.us
Choix
Iza!
Livedoor Clip
Facebook
Evernote
 

Posted by funa : 08:06 PM | Web | Comment (0) | Trackback (0)


PhotoGallery


TWITTER
Search

Mobile
QR for cellphone  QR for smart phone
For mobile click here
For smart phone click here
Popular Page
#1動画をキャプチャーする
#2Web
#3Hiace 200
#4Warning!! Page Expired.
#5Cache
#6Europe
#7/// BANGBOO BLOG /// From 2010-08-01 To 2010-08-31
#8Sharpen up
#9Cache
#10Wifi security camera with solar panel & small battery
#11I want to ride my bicycle
#12/// BANGBOO BLOG ///
#13/// BANGBOO BLOG /// On 2016-03-08
#14Who's BAT? (Batch file)
#15Norton Internet Security
#16No ID
#17Attachment
#18☆od damnit
#19Detected as bad site by virus company
#20/// BANGBOO BLOG ///
#21Warning!! Page Expired.
#22Ant
#23Shoot
#24Significant Rule
#25/// BANGBOO BLOG /// From 2016-03-01 To 2016-03-31
#26/// BANGBOO BLOG /// From 2016-07-01 To 2016-07-31
#27Column
#28Gadget
#29Teeth Teeth
#30Positive
#31Win7 Insco
#32Oxcelo
#33ICOCA
#34Assertive Behavior
#35System designing
#36What is important before sitting in front of monitor
#37/// BANGBOO BLOG /// From 2011-06-01 To 2011-06-30
#38/// BANGBOO BLOG /// From 2011-10-01 To 2011-10-31
#39/// BANGBOO BLOG /// From 2012-09-01 To 2012-09-30
#40/// BANGBOO BLOG /// On 2016-02-27
#41/// BANGBOO BLOG /// From 2016-04-01 To 2016-04-30
#42/// BANGBOO BLOG /// From 2016-10-01 To 2016-10-31
#43/// BANGBOO BLOG /// From 2017-01-01 To 2017-01-31
#44The team that always wins
#45Go, MX, Go, Race!!
#46Pigs will fly out of my ass
#47Net Corruption
#48Darwinian Theory Of Evolution
#49Plasticity
#50Ora Ora Ora Ora Ora
#51RAMちゃ~ん
#52Fork OH
#53Shooting star
#54Tools - free icon etc
#55It stands alone
#56Estimation
#57Theory never comes true
#58dye
#59I'm air-cocking
#60α7Ⅱ
#61Google API
#62SN
#63Big D
#64Bike comparison
#65People never say truth, Just do it, observe them, Anything is impossible
#66Branding Excellent
#67Presentation
#68ApacheBench
#69/// BANGBOO BLOG /// From 2010-07-01 To 2010-07-31
#70/// BANGBOO BLOG /// On 2010-07-03
#71/// BANGBOO BLOG /// On 2010-08-09
#72/// BANGBOO BLOG /// On 2010-09-15
#73/// BANGBOO BLOG /// From 2013-05-01 To 2013-05-31
#74/// BANGBOO BLOG /// From 2013-08-01 To 2013-08-31
#75/// BANGBOO BLOG /// On 2014-09-20
#76Itinerary with a eurail pass
#77セレブ
#78The black sheep to the black ship
#79Theme
#80Disposable Income
#81Got jog?
#82Hello Hello Hello How Low?
#83Engine OH
#84jQuery - write less, do more.
#85ahe-ahe is goooood for your brain
#86Re-install my OSXP
#87F☆ck CSS
#88My mic
#89Contaminated
#90Before After
#91Online softwares
#92GPS Watch
#93Card
#94Teeth Teeth
#95XSS, CSRF, JSOP, SSO
#96Itinerary with a eurail pass
#97Belongings
#98動画をキャプチャーする
#99Where Hiphop lives!!
#100Rock Will Never Die
Category
Recent Entry
Trackback
Comment
Archive
<     August 2017     >
Sun Mon Tue Wed Thi Fri Sat
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Link