BugTrack/799
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*EtagやIf-modified-sinceやHEADメソッドなど [#yc238f6a]
-ページ: BugTrack
-投稿者: [[henoheno]]
-優先順位: 普通
-状態: 提案
-カテゴリー: その他
-投稿日: 2005-02-08 (火) 23:31:02
-バージョン:
**メッセージ [#f4fec370]
URIの更新チェックに関する話題をここに集めましょう。
*** 利点 [#hba976b9]
+更新チェックが素早く終わるかもしれない
+うまくキャッシュがヒットするとレンダリングを省略できて負...
*** 欠点 [#re4a834c]
+インクルードしている先のページの更新状況まではわからない...
+あるページについて、その中で他のページを(何らかの方法で)...
** ちょっと確認: Etag [#tff7fda7]
- Ogawa::Memoranda: 「条件付きGET」のススメ
-- http://as-is.net/blog/archives/000956.html
- hail2u.net - Weblog - ETag
-- http://hail2u.net/blog/coding/etag.html
-- Apacheにおいてはinode番号、ファイルサイズ、最終更新日...
-- "ぐぐったら一番上にでて来るページだし、ちゃんと見れよ...
- モジュール版PHPで「If-Modified-Since」に対応する
-- http://www.arielworks.net/articles/2004/0125a
** [[BugTrack2/189]]不要なライブラリを読み込まないように...
*** HTTP HEAD について [#iab4926c]
- ''HTTP HEAD の確認''についても疑問を持っていました。現...
-- 例えばプラグインを拡張し、plugin_xxx_include() のよう...
--- 簡易パース機能では、(とりあえず)ブロックプラグインの...
-- 次のようにすればもっと単純です。index.php?hoge でペー...
--- インクルード系の場合は lib/file.php -> get_source() ...
--- related などは関連ページがプラグインの独自仕様になる...
--- リスト系( ls や tracker など)は下位層のページ数が膨大...
--- なんだか色々と書きましたが、タイムスタンプの取得処理...
- uDzeKhqwymq -- [[daxmcbgcdun]] &new{2014-03-23 (日) 07:...
- CbigOZFcJMAznuDHkw -- [[powduoqyvye]] &new{2014-04-01 (...
#comment
***ブラウザの挙動(back)について / If-Modified-Since [#z4c...
- ''ブラウザの挙動''について。若干調べてみましたが、現状...
-- IE ではページ移動(( 進む・戻る ))の都度 PukiWiki が稼働...
-- Firefox(fx) ではページ移動の都度確認しているのか、移動...
--- ちょっと気になったので調べもってコードを書いてみまし...
$timestamp = mktime(0, 0, 0, 7, 20, 2007);// 本当は関連...
send_http_head_403($vars['page'], $timestamp);
function send_http_head_403($page, $timestamp)
{
$last_modified = gmdate('D, d M Y H:i:s T', $timestamp);
$etag = '"' . md5($page . $timestamp) . '"';
header('Last-Modified: ' . $last_modified);
header('ETag: ' . $etag);
$modified_since = http_if_modified_since();
if ($modified_since && $modified_since != $timestamp) {
return;
}
if (isset($_SERVER['HTTP_IF_NONE_MATCH'])) {
$none_match = $_SERVER['HTTP_IF_NONE_MATCH'];
if ($none_match && $none_match != $etag) {
return;
}
} elseif (! $modified_since) {
return;
}
header('HTTP/1.1 304 Not Modified');
exit;
}
function http_if_modified_since()
{
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
$arg = trim($_SERVER['HTTP_IF_MODIFIED_SINCE']);
$length = strpos($arg, 'GMT');
if ($length === false) {
$arg .= ' GMT';
} else {
$arg = substr($arg, 0, $length + 3);
}
$timestamp = strtotime($arg);
if ($timestamp !== false && $timestamp !== -1) {
return $timestamp;
}
}
return false;
}
--- スキンで no-cache が設定されればもちろん無効です。ま...
--- あと、PukiWiki 標準の Last-Modified はとりあえずコメ...
- [[BugTrack/413]], [[BugTrack/486]] -- &new{2009-10-03 ...
#comment
** その他のコメント [#j9db1340]
-いずれもinit.phpの改造になりそうな予感。 -- [[henoheno]]...
-initですか~。てっきり read に仕込むのかと思ってました。...
- [[BugTrack2/249]] 添付ファイルにはLast-modifiedをつける...
#comment
終了行:
*EtagやIf-modified-sinceやHEADメソッドなど [#yc238f6a]
-ページ: BugTrack
-投稿者: [[henoheno]]
-優先順位: 普通
-状態: 提案
-カテゴリー: その他
-投稿日: 2005-02-08 (火) 23:31:02
-バージョン:
**メッセージ [#f4fec370]
URIの更新チェックに関する話題をここに集めましょう。
*** 利点 [#hba976b9]
+更新チェックが素早く終わるかもしれない
+うまくキャッシュがヒットするとレンダリングを省略できて負...
*** 欠点 [#re4a834c]
+インクルードしている先のページの更新状況まではわからない...
+あるページについて、その中で他のページを(何らかの方法で)...
** ちょっと確認: Etag [#tff7fda7]
- Ogawa::Memoranda: 「条件付きGET」のススメ
-- http://as-is.net/blog/archives/000956.html
- hail2u.net - Weblog - ETag
-- http://hail2u.net/blog/coding/etag.html
-- Apacheにおいてはinode番号、ファイルサイズ、最終更新日...
-- "ぐぐったら一番上にでて来るページだし、ちゃんと見れよ...
- モジュール版PHPで「If-Modified-Since」に対応する
-- http://www.arielworks.net/articles/2004/0125a
** [[BugTrack2/189]]不要なライブラリを読み込まないように...
*** HTTP HEAD について [#iab4926c]
- ''HTTP HEAD の確認''についても疑問を持っていました。現...
-- 例えばプラグインを拡張し、plugin_xxx_include() のよう...
--- 簡易パース機能では、(とりあえず)ブロックプラグインの...
-- 次のようにすればもっと単純です。index.php?hoge でペー...
--- インクルード系の場合は lib/file.php -> get_source() ...
--- related などは関連ページがプラグインの独自仕様になる...
--- リスト系( ls や tracker など)は下位層のページ数が膨大...
--- なんだか色々と書きましたが、タイムスタンプの取得処理...
- uDzeKhqwymq -- [[daxmcbgcdun]] &new{2014-03-23 (日) 07:...
- CbigOZFcJMAznuDHkw -- [[powduoqyvye]] &new{2014-04-01 (...
#comment
***ブラウザの挙動(back)について / If-Modified-Since [#z4c...
- ''ブラウザの挙動''について。若干調べてみましたが、現状...
-- IE ではページ移動(( 進む・戻る ))の都度 PukiWiki が稼働...
-- Firefox(fx) ではページ移動の都度確認しているのか、移動...
--- ちょっと気になったので調べもってコードを書いてみまし...
$timestamp = mktime(0, 0, 0, 7, 20, 2007);// 本当は関連...
send_http_head_403($vars['page'], $timestamp);
function send_http_head_403($page, $timestamp)
{
$last_modified = gmdate('D, d M Y H:i:s T', $timestamp);
$etag = '"' . md5($page . $timestamp) . '"';
header('Last-Modified: ' . $last_modified);
header('ETag: ' . $etag);
$modified_since = http_if_modified_since();
if ($modified_since && $modified_since != $timestamp) {
return;
}
if (isset($_SERVER['HTTP_IF_NONE_MATCH'])) {
$none_match = $_SERVER['HTTP_IF_NONE_MATCH'];
if ($none_match && $none_match != $etag) {
return;
}
} elseif (! $modified_since) {
return;
}
header('HTTP/1.1 304 Not Modified');
exit;
}
function http_if_modified_since()
{
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
$arg = trim($_SERVER['HTTP_IF_MODIFIED_SINCE']);
$length = strpos($arg, 'GMT');
if ($length === false) {
$arg .= ' GMT';
} else {
$arg = substr($arg, 0, $length + 3);
}
$timestamp = strtotime($arg);
if ($timestamp !== false && $timestamp !== -1) {
return $timestamp;
}
}
return false;
}
--- スキンで no-cache が設定されればもちろん無効です。ま...
--- あと、PukiWiki 標準の Last-Modified はとりあえずコメ...
- [[BugTrack/413]], [[BugTrack/486]] -- &new{2009-10-03 ...
#comment
** その他のコメント [#j9db1340]
-いずれもinit.phpの改造になりそうな予感。 -- [[henoheno]]...
-initですか~。てっきり read に仕込むのかと思ってました。...
- [[BugTrack2/249]] 添付ファイルにはLast-modifiedをつける...
#comment
ページ名: