ヘッダを設定によるブラウザキャッシュ制御
サーバから送信されるHTMLヘッダを用いて、ブラウザがコンテンツをどのようにキャッシュするのか設定することができる。
Expires ヘッダー、もしくは Cache-Control ヘッダーのいずれか、Etag ヘッダー、Last-Modify のいずれかを設定するのがよい。*1
ヘッダー
Expires ヘッダー
HTTP 1.0 から存在し、キャッシュの期限切れを設定する。設定するときにはHTTP-date形式(IMF-fixdate, rfc850-date, asctime-date)で指定する。
例) Expires: Thu, 01 Dec 1994 16:00:00 GMT
HTTP-date 以外の指定がされると "already expired" とみなされて、キャッシュされない。
キャッシュされないために「-1」とかを指定することもある
指定できるのは1年以内の日付。
Cache-Controlヘッダー*2
HTTP/1.1 で追加されたヘッダー、Expire ヘッダーよりも優先する。
must-revalidate | キャッシュが有効かどうか必ずサーバに問い合わせた上で利用する。問合せに成功しなければキャッシュは使用してなはならい |
no-cache | 一度キャッシュされたデータは有効であるかどうかをサーバに問合せをした上で利用する |
no-store | キャッシュをしない |
public | キャッシュ可能な全ての場合においてキャッシュに保存することができる |
private | 単一の利用者のために意図されているもので、共有キャッシュには格納されない。私用キャッシュには格納されて、使用される |
max-age=n | nは秒数で指定、n秒後キャッシュを更新する |
上記の条件は複数指定することもできる
Cache-Control: private, no-store, no-cache, must-revalidate
Etagヘッダー
サーバでリソースに対する検証トークンを生成し、クライアントからのリクエストに返信する。
クライアントはキャッシュのEtagと比較し、変更がなければキャッシュのデータを利用する。
Last-Modifedヘッダー
HTML-date 形式の日付を使用して、リソースが最後に変更された日付を返す。 クライアントはキャッシュの日付と比較して変更を判断する。
設定方法
Apache+Expires
mdo_expires を有効にして、httpd.conf などに以下の様に記述する。
ExpiresActive On ExpiresByType image/png "access plus 6 months" ExpiresByType image/jpg "access plus 6 months" ExpiresByType image/gif "access plus 6 months"
Cache-Control
同じようにhttpd.confで設定する
Header set Cache-Control "public, max-age=86400" #one day
もしくは mod_rewrite 使用する*3
RewriteEngine on RewriteRule \.php$ - [L,E=X_CACHE_PATTERN1:] RewriteRule \.html$ - [L,E=X_CACHE_PATTERN2:] RewriteRule \.(css|js)$ - [L,E=X_CACHE_PATTERN3:] RewriteRule \.(gif|jpe?g|png)$ - [L,E=X_CACHE_PATTERN4:] # For dynamic contents Header set Cache-Control "no-cache" env=X_CACHE_PATTERN1 Header unset Last-Modified env=X_CACHE_PATTERN1 # For HTML files Header set Cache-Control "max-age=0" env=X_CACHE_PATTERN2 # For CSS,JavaScript files Header set Cache-Control "max-age=600" env=X_CACHE_PATTERN3 # For Image files Header set Cache-Control "max-age=86400" env=X_CACHE_PATTERN4
全滅、からの再開
10月10日からの連休で2日家を空けたら、その間にエアーが止まって、クラゲが底に沈んだまま泳げなくなって全滅した。
泳ぎだしてから一月の命でした。
クラゲのメテフィラ(泳いでるクラゲの小さいやつ)はだめになったけど、そのメデューサを出したポリプは生きてるので再度インドメタシンの含まれるインペタン水溶液を使ってストロビレーションさせてみることにした。
ポリプは温度変化でストロビレーションを起こし、その切っ掛けは15度以下の水温にすることと言われている。
自然状態なら秋から冬にかけてストロビレーションを起こし、通常年に1回程度ストロビレーションするはずだが、1月前にストロビレーションしたポリプに強制的にストロビレーションを誘発させてみるとどうなるかと思い、一月前と同じポリプにインペタン水溶液を与えてみたが、同じようにストロビレーションをした。
ある程度ホルモンとかが蓄積されないとダメかと思ったがそんなことなかった。 ストロビレーションしてからエサを与えて、通常通りの2,3mm程度の大きさになれば、インドメタシンなどの誘発物質ですぐストロビレーションはする様子。
自然状態で飼育していれば冬場にストロビレーションするだけで、そこからの育成に失敗すればまた1年まつ必要があるが、インドメタシンが含有されたインペタン水溶液を使えばなんどでもチャレンジできる。
まぁそれがいいかどうかは個人の判断。
https://twitter.com/nao550/status/655205155193778176:twitter
久しぶりのトラブル
https://twitter.com/nao550/status/648150949471453184:twitter
https://twitter.com/nao550/status/648151645864374273:twitter
そんなわけで、あとは ada1 を ada0 につなぎなおして、ada1 には新しいディスクをつなげて、
#gmirror forget gm0
#gmirror insert gm0 ada1
であとは勝手にsyncしてくれる。
この手のトラブルのたびに思うけど、geomもmdadamも楽でいいわ
インドメタシン投与実験4日目
昨日の時点で肉眼では特に変化無いように見えていたのだが、今日はあきらかにストロビレーションしていたので写真を撮って、改めて昨日の写真を見てみると、昨日の時点でストロビレーションが始まっていた。
海水は初日から入れ替えなしのまま、給餌はなし。どこかで海水を入れ替えた方がいいのかなと思いつつも、安定してるように見えるので、触りにくい。
同じタッパに入っている他のもおなじようにストロビレーションが始まっていたので、インペタンの0.1%水溶液の海水で正解の様子。
あとはこのままエフィラの分離まで行ってくれることを願うばかり
エフィラの3日目、色が薄くなり、若干大きくなって、動きがより活発になった。
[くらげ]エフィラになった
— nao (@nao550) 2015, 9月 7
昨日の記事をアップしてから、5時間ほど経過した時点でストロビラからエフィラが分離しそうになっていたが、仕事から帰宅したらもう分離してた
— nao (@nao550) 2015, 9月 8
こんなに早くエフィラになるのは全く予想外だったので、なにも準備できていない。
— nao (@nao550) 2015, 9月 8
とりあえずピペットの先に5cmくらに切ったエアチューブつけて、それでエフィラだけ吸い出して小さいペットボトルに入れてエアレーションで水流つくって様子見。
インペタン水溶液に入れてる方は変化なし