1

css (または javascript) ファイルを受け取り、それらを 1 つのファイルとして出力するページを作成しました。次のコマンドを使用して出力を圧縮すると、Firefox と Internet Explorer の両方が「If-Modified-Since」ヘッダーの送信に失敗することに気付きましたob_gzhandler

if(!ob_start("ob_gzhandler")) ob_start();

最初のヘッダー (サンプルではホストとリファラーが変更されています):

Response Headers
Cache-Control   public, must-revalidate, maxage=4838400
Connection  keep-alive
Content-Encoding    gzip
Content-Length  87281
Content-Type    text/css; charset: UTF-8
Date    Wed, 12 Dec 2012 16:04:32 GMT
Expires Wed, 06 Feb 2013 16:04:32 GMT
Last-Modified   Fri, 12 Oct 2012 13:47:18 GMT
Pragma  public
Server  Apache
Vary    Accept-Encoding
X-Cache MISS from localhost
X-Powered-By    PHP/5.3.13

Request Headers
Accept  text/css,*/*;q=0.1
Accept-Encoding gzip, deflate
Accept-Language en-gb,en;q=0.5
Authorization   Basic cmVkZnVzZTpyM2RmdXMz
Cache-Control   no-cache
Connection  keep-alive
Cookie  PHPSESSID=e73355c49f06a059c22d7f02687dc51b
DNT 1
Host    example.com
Pragma  no-cache
Referer http://example.com/
User-Agent  Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20100101 Firefox/17.0

また、更新時に次のヘッダーが送信されます (サンプルではホストとリファラーが変更されています)。

Response Headers
Cache-Control   public, must-revalidate, maxage=4838400
Connection  keep-alive
Content-Encoding    gzip
Content-Length  87245
Content-Type    text/css; charset: UTF-8
Date    Wed, 12 Dec 2012 16:09:11 GMT
Expires Wed, 06 Feb 2013 16:09:11 GMT
Last-Modified   Fri, 12 Oct 2012 13:47:18 GMT
Pragma  public
Server  Apache
Vary    Accept-Encoding
X-Cache MISS from localhost
X-Powered-By    PHP/5.3.13

Request Headers
Accept  text/css,*/*;q=0.1
Accept-Encoding gzip, deflate
Accept-Language en-gb,en;q=0.5
Authorization   Basic cmVkZnVzZTpyM2RmdXMz
Cache-Control   max-age=0
Connection  keep-alive
Cookie  PHPSESSID=e73355c49f06a059c22d7f02687dc51b
DNT 1
Host    example.com
Referer example.com
User-Agent  Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20100101 Firefox/17.0

ob_gzhandler使用から標準に切り替えると、正常に動作ob_start()し、2 回目のロードで期待どおりに 304 が返されます。

関連していると思われるもう 1 つの問題は、Android デバイスから表示する場合、ストック ブラウザーまたは Dolphin Browser のいずれにも css が適用されませんが、Android 版 Firefox では問題ありません。これも無効にすることで解決します。ob_gzhandler

4

0 に答える 0