/// 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

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
#1Web
#2Hiace 200
#3Gadget
#4The beginning of CSSレイアウト
#5Column
#6Web font test
#7Ora Ora Ora Ora Ora
#8Wifi cam
#9みたらし団子
#10Arcade Controller
#11G Suite
#12PC SPEC 2012.8
#13Javascript
#14REMIX DTM DAW - Acid
#15RSS Radio
#16Optimost
#17通話SIM
#18Attachment
#19Summer time blues
#20Enigma
#21Git
#22Warning!! Page Expired.
#23Speaker
#24Darwinian Theory Of Evolution
#25AV首相
#26htaccess mod_rewite
#27/// BANGBOO BLOG /// From 2016-01-01 To 2016-01-31
#28竹書房
#29F☆ck CSS
#30Automobile Inspection
#31No ID
#32Win7 / Win10 Insco
#33Speaker
#34Arcade Controller
#35Agile
#36G Suite
#37Personal Information Privacy Act
#38Europe
#39Warning!! Page Expired.
#40GoogleMap Moblile
#41CSS Selectors
#42MySQL DB Database
#43Ant
#44☆od damnit
#45Teeth Teeth
#46Itinerary with a eurail pass
#47PHP Developer
#48Affiliate
#49/// BANGBOO BLOG /// From 2019-01-01 To 2019-01-31
#50/// BANGBOO BLOG /// From 2019-09-01 To 2019-09-30
#51/// BANGBOO BLOG /// On 2020-03-01
#52/// BANGBOO BLOG /// On 2020-04-01
#53Windows env tips
#54恐慌からの脱出方法
#55MARUTAI
#56A Rainbow Between Clouds‏
#57ER
#58PDF in cellphone with microSD
#59DJ
#60ICOCA
#61Departures
#62Update your home page
#63CSS Grid
#64恐慌からの脱出方法
#65ハチロクカフェ
#66/// BANGBOO BLOG /// On 2016-03-31
#67/// BANGBOO BLOG /// From 2017-02-01 To 2017-02-28
#68/// BANGBOO BLOG /// From 2019-07-01 To 2019-07-31
#69/// BANGBOO BLOG /// From 2019-10-01 To 2019-10-31
#70/// BANGBOO BLOG /// On 2020-01-21
#71Bike
#72Where Hiphop lives!!
#73The team that always wins
#74Tora Tora Tora
#75Blog Ping
#76無料ストレージ
#77jQuery - write less, do more.
#78Adobe Premire6.0 (Guru R.I.P.)
#79PC SPEC 2007.7
#80Google Sitemap
#81Information privacy & antispam law
#82Wifi security camera with solar panel & small battery
#83Hope get back to normal
#84Vice versa
#85ハイエースのメンテ
#86Camoufla
#87α7Ⅱ
#88Jack up Hiace
#89Fucking tire
#90Big D
#914 Pole Plug
#925-year-old shit
#93Emancipation Proclamation
#94Windows env tips
#95Meritocracy
#96Focus zone
#97Raspberry Pi
#98Mind Control
#99Interview
#100Branding Excellent
Category
Recent Entry
Trackback
Comment
Archive
<     April 2024     >
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
Link