2009-04-23 7 views
2

私はperl生成ページを持っています。このページの内容は30分ごとに変わりますので、$ r-> set_last_modified()に内容が最後に変更された時刻を設定します。Apache2 mod_perl最後に変更されたヘッダが無視されました

すべて正常に動作し、ブラウザに到着する正しいヘッダーが表示されます。

私はページをリフレッシュするときに、私のブラウザがサーバーへのリクエストに正しい "If-Modified-Since"ヘッダーを使用していますが、Apache2はこれを無視してページ全体を再送信します。

Apache2に正しく動作し、 "HTTP/1.x 304 Not Modified"で応答するにはどうすればよいですか?

(「最終更新」/「IF-変性ので、」同じApache2のプロセスからの静的コンテンツを要求するときにヘッダーが正しく処理されている。)任意の助けを

おかげ。

EDIT:私の期待は間違っていますか?私は、PerlスクリプトのInbound If-Modified-Sinceヘッダーを明示的に処理する必要がありますか?

答えて

2

リクエストを処理するときに、Apacheは最後に変更された値を保存しません。したがって、何かが変更されたかどうかを判断するには、アプリケーションを実行する必要があります。

4

悲しいことに、はい、あなたの期待は間違っています。

あなたが基本的に「OK」と言っている時点で、私はこの要求に対処しています...」と、Apacheはすべての責任をあなたに引き渡すつもりです。要求がIf-Modified-Sinceを尊重するようにするには、コードに従ってください。

PerlハンドラでApacheが/実際に/意味していることをApacheが知る方法がないので、これは正しい動作です。最良のチェックは、あなたのバックエンドDBのクエリですたとえば、レコードのタイムスタンプ....

+0

ええ、それは意味があると思います:) – aidan

関連する問題