スポンサーリンク

更新頻度の低い javascriptのファイルやスタイルシート(CSS)、画像(img, jpg, png) などのファイルがあります。そういう時に httpのレスポンスヘッダに Expires (有効期限)を設定することにより、有効期限内のファイルは、ブラウザの問い合わせを受けることがなくなり(GETがきて304を返したりする)、サーバにもクライアント(ブラウザ)にも回線にも優しくなります。

apacheのリクエストレスポンスのヘッダのフィールドに Expires の情報
を追加する方法を下記の通りです。

  • apache の mod_expires モジュールをロードする
  • mod_expires の Expires 機能をオンにする
  • Expires の設定をする
モジュールmod_expires.soのロード

httpd.conf (/usr/local/etc/apache22/httpd.conf) で mod_expires.so のロードの設定をします。

LoadModule expires_module libexec/apache22/mod_expires.so

Expires機能を有効にする

# enable expires
ExpiresActive on

デフォルトのExpires 期限

ファイルの拡張子で有効期限を指定する

cssやjs、画像(gif,jpg,png) の有効期限を 24 時間に設定するには、下記の通りです。

最終変更時刻から24時間以内を有効期限とする場合。

変更から24時間を越えるとキャッシュしてもらえなくなってしまう。

<FilesMatch "\.(css|js)$">
ExpiresDefault "modification plus 24 hours"
</FilesMatch>
<FilesMatch "\.(gif|jpe?g|png)$">
ExpiresDefault "modification plus 24 hours"
</FilesMatch>

アクセスから24時間を有効期限とする場合。

<FilesMatch "\.(css|js)$">
ExpiresDefault "access plus 24 hours"
</FilesMatch>
<FilesMatch "\.(gif|jpe?g|png)$">
ExpiresDefault "access plus 24 hours"
</FilesMatch>

24 hours なんて書いてますが

"access plus 1 days"

という風にもかけます。

こんな風にも設定ができます。

ExpiresByType text/css "access plus 3 days"
ExpiresByType application/x-javascript "access plus 3 days"
ExpiresByType image/jpeg "access plus 3 days"

Expires 機能無効時のヘッダ

HTTP/1.1 200 OK
Date: Fri, 09 Nov 2007 16:46:49 GMT
Server: Apache
Last-Modified: Fri, 27 Jul 2007 16:56:37 GMT
ETag: "9f3621-53f2-a04cbb40"
Accept-Ranges: bytes
Content-Length: 21490
Vary: Accept-Encoding
Connection: close
Content-Type: application/x-javascript

mod_expires が有効のときのヘッダ

Expires: という行が追加されてます。

HTTP/1.1 200 OK
Date: Fri, 09 Nov 2007 16:55:19 GMT
Server: Apache
Last-Modified: Fri, 27 Jul 2007 16:56:37 GMT
ETag: "9f3621-53f2-a04cbb40"
Accept-Ranges: bytes
Content-Length: 21490
Cache-Control: max-age=-8985522
Expires: Sat, 28 Jul 2007 16:56:37 GMT
Vary: Accept-Encoding
Connection: close
Content-Type: application/x-javascript

ファイルの最終修正時刻以降 3 分間だけ有効にしたい場合

ExpiresDefault "modification plus 3 minutes"

設定したあとに

設定ファイルのsyntaxチェックをします。

apachectl configtest


Expires の設定をしたら、apacheを再起動します。

sudo apachectl graceful


というわけで、変更の少ないファイルには、Expires を設定することで、
アクセスを減らし、色々なリソースの無駄を減らすことが可能になります。


スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

はてなの人気のブックマーク

スポンサーリンク
 

過去ログ

2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー