このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

Pragma

発言者:smart
( Date Tuesday, December 17, 1996 08:37:00 )


先日来のcachingの話ですが、ヘッダーにPragma: no-cacheを使用しても、
同じ効果が得られるのでしょうか。しかし、この時はCGIを使用することに
なりますね。

田中求之 さんからのコメント
( Tuesday, December 17, 1996 14:02:18 )

HTTP のプロトコルに Pragma ヘッダーってありましたっけ?

ちょっと調べておきますが、HTTP のヘッダーとして通用するなら META タグで
なんとかなりそうにも思います。

HTTP 1.1 では、キャッシュのコントロールに関するヘッダーが増えていますので、
そのうち、CGI を作るときにも、HTTP ヘッダーをどうするかというのを考えなけ
ればならないでしょうね。

ヘッダーについて考える、みたいなコーナーでもつくろうかしら。

smart さんからのコメント
( Tuesday, December 17, 1996 19:11:20 )

CGIプログラミング オーム社
を衝動買いしました。中のコードは、perlで書かれているので、少し
読みにくいのですが、以下の様です。

#!/usr/local/bin/perl
print "Content-type: text/html","\n";
print "Pragma:no-cache","\n\n";

smart さんからのコメント
( Tuesday, December 24, 1996 10:58:36 )

本件、実験した所、以下のタグで強制的にリロードされます。

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

田中求之 さんからのコメント
( Tuesday, December 24, 1996 14:49:38 )

HTTP のプロトコルを調べてみました。Pragma ヘッダーは、確かにキャッシュされない
ようにするためのヘッダーですが、これは HTTP 1.1 以降は使われなくなるようです。
(バックコンパティビリティを保つために、サポートはするようにとのことですが)

とはいえ、使えることは確かですが。


HTTP ヘッダーについて関心があるのでしたら、W3 org の HTTP プロトコルに関する
文書を読まれることをお勧めします。



→  W3C

smart さんからのコメント
( Tuesday, December 24, 1996 15:50:16 )

ありがとうございました。トライします。

smart さんからのコメント
( Saturday, December 28, 1996 14:13:34 )

同じことで、申し訳ありません。
WebSTAR2.0にしてからですが、
<META HTTP-EQUIV="Expires" CONTENT="Thu, 21 Dec 1995 12:12:12 GMT">
が効かなくなりました。試しに、
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
をやると出来てしまいます。

田中求之 さんからのコメント
( Saturday, December 28, 1996 15:22:55 )

META タグは、サーバーには関係ないはずなんですがね??

CONDITIONAL_GET の方法に関係するのかな?

まぁ、Pragma が確実なのであれば、それを使えばよいわけですが。

smart さんからのコメント
( Sunday, December 29, 1996 14:20:11 )

WebSTAR2.0のVerbous messagesを
取って見ました。いずれもファイル修正後の
2度目のリード時の物です。
比較すると、HTTP/1.0 200 OKと
HTTP/1.0 304 Not Modifiedの
違いがあるのは分かりますが、正常なreplyでしょうか。
年末でお忙しいことと思いますが、宜しくお願いします。

【Pragmaの場合】
(1)HTMLのHEAD部分
    <HEAD>
    <TITLE>test</TITLE>
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    </HEAD>
(2)WebSTARのログ
    ## Received (12): 
    GET /no-cache2.html HTTP/1.0
    
If-Modified-Since: Sunday, 29-Dec-96 04:22:20 GMT; length=152
    
Connection: Keep-Alive
    
User-Agent: Mozilla/2.02 (Macintosh; I; 68K)
    
Host: 128.0.0.1
    
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
    
Accept-Language: ja
    

    

    Found cached item!
    File Found = 1
    (Binary)  
    ### Sent MIME Header (12): 
    HTTP/1.0 200 OK
    
MIME-Version: 1.0
    
Server: WebSTAR/2.0 ID/30007
    
Message-ID: <aeec1fb3.12@128.0.0.1>
    
Date: Sunday, 29-Dec-96 04:23:09 GMT
    
Last-Modified: Sunday, 29-Dec-96 04:15:49 GMT
    
Content-type: text/html
    
Content-length: 128
    

    

    12/29/96  13:26:17  OK    128.0.0.1  :no-cache.html  128  
    Con 12: St: Established, Evt: Data Arrival, unread 0, Closing
    ***Mem: 166352
    CLOSING thread 102, connection 12
    Con 12: St: Time Wait, Evt: Closing, unread 0, Closed
    Con: 12, Closed Read error -23005
    Stream 12, File closed already.
    ***Mem: 170528

【Expiresの場合】
(1)HTMLのHEAD部分
  <HEAD>
  <TITLE>test</TITLE>
  <META HTTP-EQUIV="Expires" CONTENT="Friday, 27-Dec-96 12:12:00 GMT">
  </HEAD>
(2)WebSTARのログ
    ### Received (10): 
    GET /no-cache2.html HTTP/1.0
    
If-Modified-Since: Sunday, 29-Dec-96 04:22:20 GMT; length=152
    
Connection: Keep-Alive
    
User-Agent: Mozilla/2.02 (Macintosh; I; 68K)
    
Host: 128.0.0.1
    
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
    
Accept-Language: ja
    

    

    Found cached item!
    File Found = 1
    (Binary)  Cached file not modified.
 
    ### Sent MIME Header (10): 
    HTTP/1.0 304 Not Modified
    
MIME-Version: 1.0
    
Server: WebSTAR/2.0 ID/30007
    
Message-ID: <aeec1fb3.10@128.0.0.1>
    
Date: Sunday, 29-Dec-96 04:23:09 GMT
    
Last-Modified: Sunday, 29-Dec-96 04:22:20 GMT
    
Content-type: text/html
    
Content-length: 152
    

    

    12/29/96  13:24:04  OK    128.0.0.1  :no-cache2.html  0  
    Con 10: St: Established, Evt: Data Arrival, unread 0, Closing
    ***Mem: 168288
    CLOSING thread 102, connection 10
    Con 10: St: Time Wait, Evt: Closing, unread 0, Closed
    Con: 10, Closed Read error -23005
    Stream 10, File closed already.
    ***Mem: 172496
    Connected 00011 to 128.0.0.1
    Con 11: St: Established, Evt: Data Arrival, unread 205, Reading

田中求之 さんからのコメント
( Sunday, December 29, 1996 21:54:40 )

詳しいことは自分で試してみないとわかりませんが(他のキャッシュコント
ロール用のヘッダーの場合の動作と比較する等)、確かに Pragma と
Expires では動作が異なっていますね。

ま、Pragma を使えばよいということなんでしょう。HTTP1.1 でも
バックワードコンパチは保たれているみたいですしね。

smart さんからのコメント
( Sunday, December 29, 1996 22:24:14 )

お忙しい所、ありがとうございました。
CGIの結果をredirectした時に、client側で最新情報が自動的に表示させるのに、使用しています。
暫くの間、Pragmaを使用することにします。