• ベストアンサー

Last-Modified If-Modified-Sinceの使い方(CGI版)

これは一体なんなのでしょうか? 今私が持っている本やネットで調べてもハッキリしたことが分かりません。 モジュール版では色々手を加えないとダメらしいのですが CGI版ではそのままで出力できると書いてあります でもそのまま出力とはどうすればいいのか? そしてどういう場合に使えばいいのかが分かりません。 header Last-Modified; こんな感じでしょうか?それともまた違う使い方でしょうか? どなたか教えてください!お願いします

noname#14955
noname#14955
  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

Last-Modifiedは、Webサーバが現在レスポンスを返している内容の最終更新日付を表してます。 If-Modified-Sinceは、Webサーバに対して、この日付より新しい内容があるかをリクエストするために使います。

参考URL:
http://www.studyinghttp.net/header
noname#14955
質問者

お礼

参考URLを見てみましたけど、やはりイマイチ分かりませんでした。 ただ、どういう状況でどういう情報が送られるかは分かりました! 詳しいページありがとうございます^^

関連するQ&A

  • PHPがCGIモードのサーバでもLast-Modifiedを取得するに

    PHPがCGIモードのサーバでもLast-Modifiedを取得するには? Webサイトを.htmlではなく、.phpで制作しています。共通部分を外部.phpファイル化して作業時間短縮や間違いを防ぐためです。 しかし、自動でrssxml等のRSSやAtomファイルを生成するソフトを使っているのですが、アップされたファイルを開くと、 更新した日が一番上にくるはずなのにそうならず、よく見ると、全てのページの更新日時が同じになってしまっています。これでは更新順にページが並ばず、まるでウソのRSSファイルになってしまいます。 上述のように、.phpファイルでつくっているサイトなので、ローカルでは更新日時がうまく取得できないので Webサーバから取得するようにツールで設定しているのですが、その場合、Last-Modifiedで更新日時を取得して いるソフトだそうで、これで取得できれば良いのですが、これができませんでした。 利用しているサーバのPHPがCGIモードなためだそうです。 もしもモジュールモードであれば、トップページの階層の.htaccessにたった一行記述するだけで 解決するらしいです。 CGIモードでもLast-Modified、つまり更新日時を取得するにはどのような方法があるでしょうか?

    • ベストアンサー
    • PHP
  • CGI版とモジュール版の違いで

    CGI版で使えないものというのは apache_から始まる関数以外に何かありますか? モジュール版と比べての機能制限など教えてください。 日付関係でも少し違うと言うのは分かったのですが、詳しいことがさっぱりなので^^; 今借りているレンタルサーバではCGI版ですが、使えない関数が他にあるなら知りたいんです。 あとモジュール版の方が早いと聞きましたけど、掲示板ぐらいのものになるとCGI版の方が早いという話も聞きます これは正しいですか?それとも掲示板の種類で大きく変わるでしょうか? よろしくお願いします

    • ベストアンサー
    • PHP
  • PHPのApacheモジュール版とCGI版の違い

    タイトルのとおりなのですが、PHPのApacheモジュール版とCGI版ってなにが違うのでしょうか? 今はモジュール版でしか構築したことないのですが、仕事の都合でCGI版で構築しなくてはいけません。 プログラムを書く上で、違う点がありましたら教えてください。 #!/usr/local/perlみたいなものもいるのかな?

    • ベストアンサー
    • PHP
  • PerlとphpのCGI版

    Perlは文書に最適化された言語だと今日知りました。 そこで思ったのですが、PerlとphpのCGI版の場合だと ファイルの読み書きなどを考えてみたところ、速度にさほど違いはないのでしょうか? mod_perlとphpのモジュール版の速度は同じくらいだと聞きます となればphpのCGI版はさほど早くなく、Perlと同程度じゃないかと思ったわけです どなたか教えてください!

  • PC版 ラストレムナント

    PC版のラストレムナントを購入したんですが、このゲーム起動する際にオンライン認識ありますよね? てっきりオフラインゲームで出来るとばかり思っていたんですが、ネットつないでないので認証できませんし、インストールも出来ません。 オフラインのみで遊ぶ場合は無理なのでしょうか?ツールなどを使ってその過程を飛ばすことなんかできませんかね?

  • PHPのheaderの「一度に複数のヘッダを送信」とは?

    VBAやフォートランは我流で経験してますが、PHP初心者です。 ご教示願います。 「PHP マニュアル」のサイトでheader関数の説明で、 http://jp.php.net/manual/ja/function.header.php 次のような説明を見つけました。 「4.4.2 および 5.1.2 この関数は一度に複数のヘッダを送信できないようになりました。 これは、ヘッダインジェクション攻撃への対策です。」 とありますが、 「一度に複数のヘッダを送信」とはどういうことでしょうか? 同じページの例に、 <?php $last_modified_time = filemtime($file); $etag = md5_file($file); header("Last-Modified: ".gmdate("D, d M Y H:i:s", $last_modified_time)." GMT"); header("Etag: $etag"); if・・・中略・・・} ?> とありますが、 この2つの「header」は「一度に複数のヘッダを送信」にはあたらないのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • CGI_Lite.pmをしようしてデータをアップロード

    CGI Lite v1.8 Last modified: May 10, 1997 下記メッセージがででサーバーにデータをアップロードできいません。 意味がわからないので教えてください。サンプルプログラムは書籍より入手したそのままをしようしているのですが。 Oh, Oh! I'm upset! Can't read what I want また、CSVデータをサーバーにアップロードしたいCGIを作成したいのですが、他になにかわかりやすいサンプル等あれば教えていただけないでしょうか?

    • ベストアンサー
    • Perl
  • PerlのCGIとPHPを

     特定のディレクトリのCGIの中にPHP(Apacheのモジュール版)を書き、(CGIで<?php~?>とHTMLを出力させる)Perl/CGIを実行したときにその出力の中に含まれるPHPを実行させたくて、.htaccessに AddHandler application/x-httpd-php cgi AddHandler cgi-script .cgi を書いたのですが、どうやらPHPのAddHandlerの後に書かれているCGIの方が優先され、PHPが実行されず、CGIのみが実行されます。  順序を逆に書いても、今度はPHPが優先されてしまい、どちらか片方しか実行されません。  どうすれば、両方同時に実行させられるでしょうか、教えてください。  それが不可能ならば、とりあえずPerl/CGIからPHPを呼び出して先に実行させるようなことができるのならば教えてください。  ちなみに、httpd.confには拡張子cgiをすべてのディレクトリでCGIとして実行、拡張子phpもすべてのディレクトリでPHPとして実行させるようにAddHandlerされています。 Apache/2.0.58(Windows版) PHP/5.1.6 CGI: ActivePerl 5.88 です。

    • ベストアンサー
    • PHP
  • headerでエラー(CGI版のPHP)

    アイルのホスティングサービス上で応募フォームの PGを作成しています。 仕様としては 1.ユーザーが入力 2.送信 3.空白チェックなどして問題があれば1に戻る 4.問題がなければ入力項目の確認画面へ飛ばす という感じですが、現在は仕様の4で困っています。 普通に各種入力チェックをクリアーしたらheader Location: URLで飛ばすだけなのですが、以下の エラーが表示されます。 Cannot add header information - headers already sent by ・<HTML>が始まる前にコードを入れてます。 ・on start()も入れてみましたが、結果は同じです。 ・権限の方も確認しました。 さらに、 #!/usr/local/bin/php <? header("Location: URL"); exit; ?> というheaderのみ実行させるコードでも同様の エラーが発生しました。 モジュール版では同様のエラーが確認できません でした。 もしかしたら基本的なことなのかもしれませんが、 よろしくお願いします。

    • ベストアンサー
    • PHP
  • cgiからcgiを呼び出す方法2

    先日「cgiからcgiを呼び出す方法」で質問させていただいたのですが、 その後の状況にて新たな質問をさせていただきます。 【経緯】 もともと単体で動作していたcgi Aに対して新たにcgi Bを作成し、 cgi Bからcgi Aを呼び出したいのですが、うまくいきません。  cgi A:アンケート回答フォームのようなもの  cgi B:認証フォーム(コードを入力してDB内のデータと一致したらcgi Aを呼び出したい) 【その後の状況】 exec("perl A.cgi"); とすることで cgi A の画面を表示することが出来ました。 【新たな質問】 (1) cgi A の画面は表示されましたが title は cgi B のままです。  exec で cgi A が呼び出された時点で title は cgi A にならないのでしょうか? (2)いろいろなサイトに、呼び出し先に  "Content-Type: text/html; charset=Shift_JIS\n\n"  の記述があってはダメとの説明がありましたが、この記述がないと  cgi Aにてデータを入力し、送信ボタンを押すと  500 Internal Server Error(malformed header from script. Bad header~)  が表示されてしまいます。  Content-Type の記述があれば、cgi A の送信ボタンを押すことによって  入力したデータがDBに格納され、また、title も cgi A のタイトルが表示されます。 【cgi A が呼び出された時点の画面イメージ】  cgi B のタイトル  Content-Type: text/html; charset=Shift_JIS  cgi A のタイトル   cgi A の入力項目   cgi A の送信ボタン cgi A の送信ボタン(submit)を押すことによって、完全に cgi Aに制御が渡るということでしょうか? cgi A を呼び出した時点で完全に cgi A に制御を渡したいのですが、 どなたかアドバイスをお願いします。 cgi A の構成を変える必要があるようであれば、その当たりのアドバイスもお願いします。

    • ベストアンサー
    • CGI

専門家に質問してみよう