• 締切済み

HTTPのExpiresヘッダーについて教えてください。

HTTPのExpiresヘッダーについて教えてください。 画像が多いサイトを運営していて、リクエストの数を減らすためにExpiresヘッダーを追加しました。 僕の予想としては、一度キャッシュされればCache-Controlのmax-ageの期間はリクエストが上がらないと思っておりました。 実際、FirefoxのFirebugで確認をするとリフレッシュするたびにリクエストが飛んでいました。 WebサーバはIISを使用しており、EtagとExpiresが両方レスポンスされていたので優先順位の問題かと思いApacheでEtagを出さない設定にして試してみても同じ状況になってしまいます。 僕の理解としてはExpiresとCache-Controlを付ければ、有効期限の間はキャッシュを使用してリクエストは飛ばないと思っていました。 調査するにも行き詰まっており、何かヒントがいただければと思います。 よろしくお願いいたします。

みんなの回答

  • ham56
  • ベストアンサー率0% (0/0)
回答No.1

>実際、FirefoxのFirebugで確認をするとリフレッシュするたびにリクエストが飛んでいました。 「リロードしている」んですよね?リロードはmax-ageが効いていようとリクエスト出します。 リロードじゃなく、max-age設定している画像に対するURL直打ちとかだとリクエスト出ませんよね?(それでも出るなら単にmax-ageの設定が効いてないだけだと思いますが。)

参考URL:
http://blog.ozacc.com/archives/001395.html
bigger111
質問者

お礼

回答ありがとうございます。 リロードでもmax-ageが効くのかと思っておりました。 URL直打ちでリクエストが飛ばないのは確認しました。 ありがとうございました。

関連するQ&A

  • IIS7.5でHTTPリクエストヘッダを追加

    IIS7.5でHTTPリクエストヘッダを追加するにはどうしたらよいのでしょうか? 応答ヘッダーは、追加できるのですが、リクエストヘッダの追加方法がわかりません。 よろしくお願いします。

  • HTTP通信の詳細を知りたい

    PHPで他ドメインのページの情報を取得しています。 その際に、HTTP通信のリクエストヘッダ、レスポンスヘッダの詳細を見たいです。 イメージとしては、firefoxの「firebug」とか「live http header」で取得できる情報量がほしいです。 現在、http通信でhttp_clientを使っています。 http_clientのcurrentResponse()でレスポンスは取得できるのですが、 クッキー情報などが入っていないです。 一番知りたいのは、リクエストヘッダです。 PHPを設置しているサーバーからどのようなリクエストヘッダを送っているのかを知りたいです。 というのは、設置しているサーバーによって同じページにリクエストを送っているのに、返ってくる情報が変わるときがあります。 PHPプログラムは全く同じです。 サーバーはさくらインターネットの共有サーバーを3つ契約しており、 3つのサーバーに同じプログラムを置いてHTTP通信しているのですが、 取得できる情報が異なっていて困っています。 恐らく、リクエストの何かが違っていると思うのでそれを調べたいと思って 質問しました。 そもそも原因が違うところにありそうであればアドバイスもお願いします。 よろしくお願いします。

    • 締切済み
    • PHP
  • HTTP レスポンスヘッダ

    URLを指定してHTTP レスポンスヘッダ等が確認できるサイトで、 Request typeをGETやPOSTが選択可能なところを探しています。 少し探した結果、 http://web-sniffer.net/ というところが見つかりましたが、このようなサイトが他にもあれば教えてください。 宜しくお願いします。

  • レスポンスヘッダとエンティティヘッダの意味

    HTTPのレスポンスヘッダとエンティティヘッダの意味を教えてください。 参考書には、エンティティヘッダはリクエスト・レスポンスと載ってましたが、リクエスト時、レスポンス時にもエンティティヘッダが付くということでしょか? また、ステータスコードは、レスポンスヘッダで返されるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML
  • HTTPリクエスト・レスポンスヘッダとは?

    こんにちは。お世話になります。 HTTPリクエストヘッダとレスポンスヘッダは通信において、HTMLファイルの前に送られてきて、その後HTMLファイルが送られてくる、と聞いているのですが、HTMLファイルの<HEAD></HEAD>タグの間に書く、<META ~>の情報とは、別物なんでしょうか? 別物だとしたら、<META ~>はどういう意味をなすのでしょうか? 誰か分かる方が見えましたら、教えてください。よろしくお願いします。

  • ApacheでのHTTPヘッダーの編集

    ApacheでのHTTPヘッダーの編集についてご質問いたします。 Response HeaderのServerフィールドに新規に値を設定したいのです が、どうもうまくいきません。何か方法はあるのでしょうか? 具体的にいいますと、現状は Server:Apache… となっていますが、新たに"Value"を追加し Server:Apache…/"Value" または Server:Apache… Server:"Value" というようなヘッダーを生成したいと思っています。 (ちなみにIISだと簡単にできました。) なお、mod_headerモジュールは組み込まれております。 よろしくお願いいたします。

  • HTTPヘッダーとボディーを区切る改行コードについ

    CentOS5.8+Apatch2.2.14+PHP5.3.8の環境下で HTTPのリクエストをApatch+PHPで受付、PHPより下記コードで $str = "XXXXXXX"; $sjisstr = mb_convert_encoding($str, "SJIS"); header("Content-Type: text/html;charset=Shift_JIS"); echo $sjisstr; HTTPレスポンスを返していますが HTTPレスポンスのヘッダーとボディーを区切る改行コードが 0d0a 0d0a 0a0a となってしまいます。 0d0a 0d0a だけにする方法を知っている方 ご教示をよろしくお願いします。

    • ベストアンサー
    • PHP
  • HTTPのリクエストヘッダを独自に生成する方法を教えてください。

    どうしても実現方法がわからずに困っています。 ぜひお力添えをお願いいたします。 HTTPのリクエストヘッダに User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) のような形で情報が入っていると思います。 これと同じように、独自で作った以下のようなものを入れたいのですが、何をどうすればよいのでしょうか。 uid: 1234 実行環境は、 OS:Windows2003サーバ Webサーバ:IIS その他にActivePerlがインストールされていますので、Perlを使うことが可能です。 不可能であるということがわかるだけでもありがたいです。 お知恵を拝借させてください。

  • URL指定のないHTTP-EQUIV="Refresh"

    稀に以下の様なページが出る事があるのですが、 これはどういう原因で起こるのでしょうか? <HTML> <HEAD> <META HTTP-EQUIV="Refresh" CONTENT="0.1"> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Expires" CONTENT="-1"> </HEAD> </HTML> 0.1秒毎にキャッシュ消しながらリフレッシュ、という意味だと思うのですが、サーバー攻撃みたいな事になっていて困っています。

  • モジュールを使ってリクエストヘッダーの表示をさせたい

    宜しくお願いします。 ウェブサーバーにリクエストを送った際、 リクエストヘッダ レスポンスヘッダとあると思うんですけど、 レスポンスヘッダは下記の形で表示できるのですが、 リクエストの際のヘッダ情報(HOST:やReferer:など)を表示させる事ができません。 どなたか、モジュールを使った形でリクエストヘッダを表示させるプログラム記述をご教授願えませんでしょうか。 ※下記は実際にテストを行っているリクエストヘッダとレスポンスヘッダとソースを表示する記述例です。(レスポンスヘッダは正常に表示できているとおもうのですが・・。) #!/usr/bin/perl use HTTP::Request::Common qw(POST GET); use LWP::UserAgent; use HTTP::Cookies; my $ua = LWP::UserAgent->new; my $req = $ua->request(HTTP::Request->new(GET => "http://localhost/")); print "Content-type: text/html\n\n"; print $req3->headers_as_string([$endl]);#これを追加し表示される情報はリファレンスっぽくなってしまうのと、 #リクエストヘッダのHOST:やReferer:UserAgentなどの情報が入ってないので、 #モジュールを利用してリクエストヘッダを表示させてみたいです。 print $req->as_string; リクエストヘッダーのイメージは下記のような情報だと思うのですが、モジュールを使って表示させる事はできないでしょうか どなた様かご教授の程宜しくお願い致します。 HTTP/1.1 Accept: */* Referer: http://okwave.jp/search.php3 Accept-Language: ja User-Agent: Mozilla/4.0 (compatible ; MSIE 6.0; Windows NT 5.0) Host: okwave.jp Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=Shift_JIS

    • ベストアンサー
    • Perl