CGIだけど、なんか質問ある?part4

このエントリーをはてなブックマークに追加
934名無しさん@お腹いっぱい。:01/12/21 15:30 ID:voEY9WIw
掲示板システムを作っているのですが
POSTで書き込んだあとに、Location:で飛ばすと
IEだとそのURLに対するIf-Modified-Since:を吐かずにリクエストを出し、
ネスケだと、そもそもリクエストすら出さずに勝手にキャッシュを使いやがります。
これ、どうしてでしょう。。。。?
Locationで飛ばしても、ブラウザでURLを指定して飛んだのと
同じようにするにはどうしたらいいのでしょうか?
誰か助けて。。。
935会社からです。:01/12/21 18:56 ID:s31HoiR8
確認してないけど、ココと同じ様に、メタタグで飛ばしたらどうカニ?
936934:01/12/21 19:08 ID:voEY9WIw
>>935
ありがとうございます。
メタタグで飛ばすことによって、IEでは解決しました。

しかし、ネスケでは
明示的にリロードされるまでは、
キャッシュにあるものはキャッシュを使うようになっているみたいです。
937名無しさん@お腹いっぱい。:01/12/21 19:16 ID:???
思い切ってキャッシュ無効にしてみては?
938名無しさん@お腹いっぱい。:01/12/21 19:37 ID:voEY9WIw
>>937
今回作っている掲示板システムですが、
多少毛色の違うモノでして、
更新されたら更新された差分だけ転送し、
現在のものが最新であれば、304でキャッシュを表示する
というモノです。
なので、キャッシュ無効はできないんです。。。。

実はこういうシステム自体が無理なのかなぁ。。。。
939名無しさん@お腹いっぱい。:01/12/22 03:42 ID:???
>>938
飛ばした先のページにmetaタグ書けばキャッシュ読まないと思うけど。
こんな感じで。

<meta http-equiv="expires" content="0">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">

とりあえず現時点でIEでキャッシュ読まない状態なら、ネスケの場合は
<meta http-equiv="Pragma" content="no-cache">
でキャッシュを無効化できると思う(確認はしてないが)。
HTTP/1.1ならサーバレスポンスヘッダを以下のように出力しても良い。

print "Content-Type: text/html\n";
print "Cache-Control: no-cache\n\n";

ただ、なんかIE4.5(Mac)だと駄目らしい。
940名無しさん@お腹いっぱい。:01/12/22 06:03 ID:???
掲示板を読むのにもスクリプトを使ってるなら、書いた後は特別なパラメータ
をくっつけて読むスクリプトを呼び出すようにすればいいんじゃないの?
Location: http://$host/$path/read.cgi?force_reload=yes とかそんな感じで。
941934:01/12/22 14:56 ID:Zp3FJg9R
>>940
おおお、すごい。全然思いつかなかった。。。
アフォですいません。。。

でも、
http://..../read.cgi?a=100&force_reload=yesと
http://..../read.cgi?a=100は
違うURLなので、下のURLに対して、Last-Modified:を送っていても、
上のURLではIf-Modified-Since:は送ってくれないですよね?
キャッシュ無効にすると、そもそもIf-Modified-Since:どころじゃ
ないだろうし。。。。
Metaタグでrefreshしても、サーバに問い合わせすらせずに
キャッシュを表示するネスケの仕様もすごいですが。。。。

Last-Modified:を送らなければ、
ちゃんと読みに行ってくれるみたいなんですけどね
942名無しさん@お腹いっぱい。:01/12/22 23:07 ID:jSeqz4dA
CGI書くのに最適言語って何でしょうか?
943名無しさん@お腹いっぱい。:01/12/23 01:12 ID:???
>>942 開発する内容・期間・使えるリソースによって異なる。
944名無しさん@お腹いっぱい。:01/12/23 09:14 ID:IT07ia6A
現在、内部処理(アクセス解析)をトップページに組み込むために、
パフォーマンスの良い実装方法を検討しています。
その一つとして、HTMLファイル内に<IMG src="〜.cgi">タグを
使用して(content-type=image/gif指定で、表面上は透過GIFを
表示させるようにして、内部でログを生成する)実装する方法も
検討項目の一つとしています。
この場合、アクセスログのリクエスト処理が終わってなくても、
コンテンツはブラウザ上に表示されるのでしょうか?

もしそうなら、負荷のかかる処理を積極的にバックグランドで
処理し、ユーザはそれにストレスを感じずにページを閲覧でき、
効果的だと考えたのですが。

よろしくお願いします。
945名無しさん@お腹いっぱい。:01/12/23 09:20 ID:???
されます。
っていうか、全然普通にやられてる方法だし・・・
Referer取るのにめんどくさいので俺は嫌い。
946デフォルトの名無しさん:01/12/23 09:31 ID:???
アクセス
  ↓#凄い重い処理
カウンタ表示

って事かな?、でカウンタをストレスレス?に表示したいと。

1:単純にforkしてプロセスを分割する、ただ負荷自体は大きくなる。
2:カウンタを静的な画像にする、つまり100番目にアクセスした人は
  100じゃ無くて099を見る訳、で、HTMLの下の方でCGIをキックして
  こっそり次の(100)画像を生成する。

つーかカウンタ程度なら現状で問題無いと思うけど、がんばってね。
947944:01/12/23 10:02 ID:SzYzoLzH
>>945,946
ありがとうございます。検討の材料として活用させていただきます。
948名無しさん@お腹いっぱい。:01/12/23 11:03 ID:DNt3H0Xe
>>943
Ruby、perl,PHPのいいところ悪いところ教えてください
PHP 何か年寄り臭い
PERL 完璧に厨房臭い
Ruby え?何それ
950名無しさん@お腹いっぱい。:01/12/23 11:49 ID:DNt3H0Xe
>>949
じゃあ何がいいわけよ?
951名無しさん@お腹いっぱい。:01/12/23 11:52 ID:???
ObjectiveC つーか頭悪くならない言語全般 w
952名無しさん@お腹いっぱい。:01/12/23 11:53 ID:???
C
953デフォルトの名無しさん :01/12/23 11:59 ID:???
偏ってるなぁ・・・ヒテイハシナイケド(^^
Perlで良いんじゃない?>950
EVALと型無しは馬鹿の素、これ業界標準
955名無しさん@お腹いっぱい。:01/12/23 12:15 ID:DNt3H0Xe
>>953
perlだったらRubyの方がキレイに見えて覚えやすそう
だったんですが、何でperlがいいんでしょうか?
Rubyの悪いとこも教えてください。
956名無しさん@お腹いっぱい。:01/12/23 12:24 ID:???
それは腐ったPerlのコードしか見てないからだとおもうが・・・
キレイってのも良く分からんし
957名無しさん@お腹いっぱい。:01/12/23 12:27 ID:???
>>956
$とか多用する事じゃないの?
958953 :01/12/23 12:34 ID:???
こう言うの荒れるんだよなー(w
>955 それぞれのページに誇張も含めて特徴が書かれてるよ。
基本的にRubyはPERLより難しいかわり柔軟
(後出しじゃんけんな上に、OOにしちゃったので)
んで、ドキュメントとかは多分少ないしょうね。
どっちにしても、何かポインタ示してもらわないと答えられない(多様性とか習得の難易度とか)
覚え易いのが良ければPythonとかお勧め
>>957
$多用すると汚いの?
最強厨房ってやつ?
960名無しさん@お腹いっぱい。:01/12/23 13:29 ID:???
use strictしておけば、my()は変数宣言と同じだとか言っている阿呆がいたのですが、どうしましょうか。
961名無しさん@お腹いっぱい。:01/12/23 13:30 ID:???
>>958

> $多用すると汚いの?

かなり見づらい。特にCをやっているとね。
962名無しさん@お腹いっぱい。:01/12/23 13:58 ID:???
結局こう?
perlはCとか前科が無ければ習得が容易
RubyはCやってた人向きでC勉強できるぐらいの知能あるならRuby
やれって事?そしてRubyの方が融通がきくんだね
963名無しさん@お腹いっぱい。:01/12/23 14:10 ID:???
>>962

Cって難しいか?
Perlよりも遙かに仕様が小さくて簡単だと思うけど。
文字列処理は面倒だけどね>C
964963:01/12/23 14:12 ID:???
あくまでもC++じゃなくてCね。
965C勉強中:01/12/23 15:10 ID:???
>963
プログラミングが初めてならPerlの方が楽だと思う。
Cだと初期化が面倒くさい。
Perlの$が汚いという人もいるけど、初心者には変数の目印として逆にわかりやすいと思うよ。
966名無しさん@お腹いっぱい。:01/12/23 15:54 ID:???
> 初心者には変数の目印として逆にわかりやすいと思うよ。

そうか・・・・
漏れは時々書き忘れてエラーを起こす。更にVBではセミコロンをつけてしまってエラーを起こす w
967名無しさん@お腹いっぱい。:01/12/23 17:15 ID:yPva/HA4
今使っている掲示板はCGIで書き出すものなんですが
HTMLで書き出すようにするのって、大変なんでしょうか?
CGI超初心者ですが、できるようなら改造してみたいと思ってます。
ご意見お聞かせください
968名無しさん@お腹いっぱい。:01/12/23 17:48 ID:???
>>967

CGI以外のプログラミングの経験は?
969名無しさん@お腹いっぱい。:01/12/23 23:30 ID:???
>>962 全然違う、Javascriptでもやっとけ w
970967:01/12/24 11:30 ID:nb0Ra4Jq
>>968
はっきり言って、ないようなものです>プログラミングの経験
改造するなら勉強したいと思っています。
ただ、今使っている掲示板のログをそのまま使いたいので、
できれば全部書き直すのではなく、
あくまで改造して、HTMLで書き出すようにしたいです。
ログを変換してHTMLで書き出す掲示板を使うのと
どっちができそうかなと思いまして・・・
971名無しさん@お腹いっぱい。:01/12/24 12:11 ID:???
はっきり言って義務教育受けた人ならどちらも鼻くそみたいに簡単です
その辺のDQNweb解説サイツを適当に読むだけで十分でしょう。
ただそう言うことすると脳みそがスポンジ状になる可能性がとても高いので
まともな本を買うかドキュメントを読む事をお勧めします
972名無しさん@お腹いっぱい。:01/12/24 13:00 ID:???
http://www.amazon.co.jp/exec/obidos/ASIN/4798001228/250-5907259-9502608

勉強したいんですが
これよいですか?
コレ以外になにかおすすめあったら教えてください
973972:01/12/24 14:40 ID:???
スレ違いでした
974名無しさん@お腹いっぱい。:01/12/24 15:25 ID:???
もう見つけただろけど一応
http://pc.2ch.net/test/read.cgi/php/988809842/l50
お勧めはやっぱオライリー各書
でもプログラム自体初めてなら結城さんの本とかもヨサゲ
975967:01/12/25 09:04 ID:c3oW+NDS
そんなに簡単なんですか?!
がんばってみます・・・
976名無しさん@お腹いっぱい。:01/12/25 21:28 ID:YEFyEeiB
だれかperlでgzipで圧縮されている変数を展開する方法知りませんか?やはりローカルで保存して展開するしかないのでしょうか・・・
http://www.raiji.net/bbs/kaku.cgi
977名無しさん@お腹いっぱい。:01/12/25 22:42 ID:???
>>976

圧縮されている変数?なんだそりゃ?

char cmd[200];
sprintf(cmd,"gunzip %s",filename);
system(filename);
978名無しさん@お腹いっぱい。:01/12/25 23:51 ID:???
>>976
perldoc Compress::Zlib
979名無しさん:01/12/26 03:25 ID:BRFa7AfO
http://me.bird.to/hakoniwa/download.htmlから
箱庭諸島2 Ex.Version (based 箱庭諸島2ver2.30)

を落して自分のFreeBSDのサーバで動作させようと思ったのですが
http://xxx.xxx/xxx/hako/hako-main.cgi
にアクセスしたところ

つぎのターンまで、あと 0 時間 -16821368 分です 同時アクセスエラーです。
ブラウザの「戻る」ボタンを押し、
しばらく待ってから再度お試し下さい

というエラーがでていますいます。

/var/log/httpd-error.log にエラーは記録されてはいません。
どなたか何故エラーででるのあ教えてください
980名無しさん@お腹いっぱい。:01/12/26 08:08 ID:???
981名無しさん@お腹いっぱい。:01/12/26 08:52 ID:???
httpのエラーと箱庭のエラー出力の区別付かんヤツには無理だと
思われ
982名無しさん@お腹いっぱい。:01/12/26 10:54 ID:???
983名無しさん@お腹いっぱい。
1000