3

safari はリクエスト ヘッダーを返信していません。私はそれを実現するのにずっと時間がかかったのを恥じています(しばらくしてから304を送り返しましたが、今までそのサファリの問題に気づいていませんでした)

if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) or isset($_SERVER['HTTP_IF_NONE_MATCH'])) {

   if (isset($_SERVER['HTTP_IF_NONE_MATCH'])) echo $_SERVER['HTTP_IF_NONE_MATCH']."<br/>";
   if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) echo $_SERVER['HTTP_IF_MODIFIED_SINCE']."<br/>";
}
else {
     header("Content-Type: text/html");
     header("Last-Modified:Fri, 13 Dec 2001 20:45:54 GMT");
     header("Etag".md5_file(__FILE__)); 
     header("Expires:Fri, 13 Dec 2001 20:45:54 GMT") ;
     header("Pragma: private");
     header("Cache-Control:must-revalidate");
     echo 'refresh to view last modified/etag headers sent back by browser<br/>;
}

Firefox が話し、Chrome が話し、Explorer が話す。

サファリはだめです。

このhttp://use.perl.org/~bart/journal/36598を読むと、最後に変更されたヘッダーで Safari に送信された日付の形式に問題があることがわかります。そうである場合、上記で使用されている形式の何が問題になっていますか?

テストと役に立たない検索に 3 時間を費やしました。サファリのキャッシュサポートの提供をあきらめる前に、developper.apple Webサイトを閲覧しています...おそらく内部設定、http形式の日付のコピーペーストの間違い、ヘッダーの欠落...

ご協力いただきありがとうございます

編集: 上記のテスト スクリプトを更新するときにサファリによって送信される http ヘッダーであり、サファリの開発者ツール (リソース) からコピーされます。

Accept:application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Cache-Control:max-age=0
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.0; fr-FR) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5
4

0 に答える 0