ETag

Posted at 2004-09-15T10:15:00+09:00 in Coding

If-Modified-SinceやらLast-Modifiedやらなんやらの絡みで、ETagなるものを調べていたわけですが、とりあえずあれば使うけどなくても別に・・・みたいなモノっぽい感じ。If-Modified-Sinceは、とりあえずLast-Modifiedを常に吐いて、受信ヘッダをチェックし適切に304を返してやるだけでOKな感じ。

ていうかETagはどういう風に生成するものか調べきれなかった。リクエストされたURLや更新時刻、inodeなどを元に生成するらしいけど。そこまでしか。

ブラウザは受け取ったETagの値を、次回リクエスト時にIf-None-Matchの値としてそのまんま送ってくるだけな感じなので、適当にMD5やらなにやらでハッシュを生成してやるだけ?

まぁ、Last-Modified吐いて適当にIf-Modified-Since調べるだけで十分っぽい感じなので、もうblosxomのプラグインには実装しないと決めたんですが。

Movable Type 3.1からサポートされた動的生成はどんな感じなんだろう?しいらべ手みて目から鱗だったらパクろう参考にしようかな。

追記@2004/09/15

しーぱん派なにぽたんさんからETagの生成方法(Apacheにおける実装に過ぎないのかもしれない)をコメントで教えてもらったので追記しておく。

my $etag = sprintf(qq{ETag: "%x-%x-%x"\n}, (stat($file))[1, 7, 9]);

$fileに対するstat()で返されるリストの、inode/size/mtimeをそれぞれ符号なし16進数でフォーマットしたものを"-"で連結ということみたいですね。

Recent entries from same category

このエントリと同じカテゴリに投稿された最近10件のエントリです。

  1. Path::Class(::File)のslurp()でバイナリ・ファイルががが
  2. Google Closure Compiler ServiceでJavaScriptファイルをコンパイルするPerlスクリプト
  3. はてなブックマークのブックマークレットをlightbox化
  4. AutoHotkey: ホイール・スクロールを加速
  5. SimpldR: livedoor Readerをシンプルに
  6. CSSのプロパティをソートするPerlスクリプト
  7. MEGAUPLOADから簡単にダウンロード
  8. Query YQLプラグインでOpen Data Tableをサポートした
  9. Amazon Product Advertising APIで返されるProductGroupの日本語訳
  10. Aex: Amazon.co.jpの全商品から検索するよ!

Comments

JavaScriptに対応、または有効な環境の場合、ここにこのエントリへのはてなブックマークコメントが表示されます。