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

Server Side Include

発言者:田中求之
( Date Monday, March 11, 1996 22:43:10 )


WebSTAR + Frontier で Server Side Include を実現する方法について
簡単に説明したページを作っておきました。

  http://mtlab.ecn.fpu.ac.jp/scripting/frontierSSI.html

WebSTAR 2.0 になれば SSI を WebSTAR がサポートする(PlugIn で提供される
ようです)ので、それまではとりあえず Frontier を使うのが簡単でしょう。

もっとも、利用できるコマンドを増やすためには Frontier のスクリプトを書くこと
になります。


なお、CGI Kit の次のバージョンでは、AppleScript による SSI 処理のサンプル
を組み込むつもりです( Includer を改良して SSI のようにコメントタグを拾う
ようにします)。

あ、そうそう、上の SSI with Frontier のページのサンプルの部分に、「ソースを
ご覧になれば…」と書いてありますが、SSI では、ソースをみても処理した後のもの
しかみられません。SSI 用の HTML のサンプルについては、改めて登録します。

吉本伸一 さんからのコメント
( Tuesday, March 12, 1996 08:42:45 )

とうとうFrontierまで足を踏み入れましたね (^^;

優れていそうだけど、これまでとっつきにくかったFrontierでしたが、
これで少しは使って見ようって気になりました。

これからも、AppleScript同様にがんばってね。

田中求之 さんからのコメント
( Tuesday, March 12, 1996 16:42:47 )

>とうとうFrontierまで足を踏み入れましたね (^^;

わはは。もう頭の中はぐちゃぐちゃです(笑)

あとは HyperCard (HyperTalk) による CGI くらいでしょうかね。

WebSTAR からのメッセージを処理するハンドラーをうまくカプセル化
すると、HyperTalk で CGI を書くのは難しくないし、ページ=カード
で管理していけば、サイトの管理も楽になるんでしょうけど、ただ、最大の
問題は、サーバーで HyperCard を立ち上げっぱなしにしなければならない
ってことですね。これがあるので、HyperCard の CGI については、実際に
はあまり使いものにならないとみて、ページ等は作っていません。

ただ、アップルが HyperCard のスタックを Web とリンクさせるものを
作っているらしい(公開されるかどうかは未定)ので、面白くなる可能性は
あります。

5月の WWDC では、新たに書き直された HyperCard 3.0 のデモがあるらしい
との情報もありますので(正式なリリースは予定すら立たない状態のようですが)
その辺にも注目したいです。

SSI ではなく HyperCard の話題になってしまいました (^_^;;

Frontier SSI のタグのサンプルページも登録しておきましたので、参考に
してください。さすがにあれだけのタグを埋め込んでいると、処理にちょいと
時間がかかるなぁといったところです。

ショージ@ハートランド さんからのコメント
( Wednesday, March 13, 1996 09:22:30 )

早速試してみました。いやぁ、思ったよりも簡単ですねぇ。そこそこ早いし。

で、僕もちょっとはなしをそらして(^_^;)、SuperCardのNetScape Plug-inも
出るらしいですねぇ。こうなってくるとSSIだけでなくもっと面白いことが
できちゃいそうで恐いです。

で、僕はといえばEXPOで購入したFUTURE BASIC IIにはまっておりまして、
毎日がこれとの格闘です。Program Generatorというインターフェイスビルダ
ーが逸品でエディタ程度ならちょいちょいと組めちゃいます。CGI用のFlame
も開発されている方がいらっしゃいますので、参考にしながら組んで行こうと
思っています。

で、で、吉本さんのおかげで眠らせておいたPerlも手を付けることになって
会社に規定時間の2時間前に出社しているありさまです。

これからも面白い情報を宜しくお願いいたします。

ショージ
show@heartlnad.co.jp

吉本伸一 さんからのコメント
( Wednesday, March 13, 1996 12:45:15 )

ショージさん、こんにちは。

何か寝た子を起こしちゃったかな (^^;
でも、MacPerlも捨てたもんじゃないでしょ。
近いうちにMacPerlでCGIするためのノウハウをまとめたページを始めますんで、
そのときはごひいきに (^^;

それからMacPerl.507r1mが昨日リリースされました。

よしもと

ショージ さんからのコメント
( Wednesday, March 13, 1996 14:14:57 )

吉本さん、こんにちわ。

WEB Partyの時にはお話をしたかったのですが、時間がなくてお話できなかった
のが残念でした。

PerlでのCGIページですか、良いですねぇ。いやぁ、はまりそうですよ。とはい
え、やはりいろいろな言語で書いているとそれぞれに便利なコマンドがあった
りしてかなり混乱してきました。

MacPerlの最新版は早速ダウンロードしに行かせていただきます。

これからも宜しくお願いいたします。

ショージ
show@heartland.co.jp

ショージ さんからのコメント
( Wednesday, March 13, 1996 14:19:32 )

今日は朝からちょいとFrontierで遊んでたんですが、定期的にセーブ
させるにはどうしたら良いんでしょうか?

セーブしていないと消えちゃうんですよねえ、データって。

ショージ

田中求之 さんからのコメント
( Wednesday, March 13, 1996 20:42:18 )

>今日は朝からちょいとFrontierで遊んでたんですが、定期的にセーブ
>させるにはどうしたら良いんでしょうか?

Object DB の Root.file をセーブするって事ですよね?

でしたら、Agent にセーブ用のスクリプトを登録しておくことになります。

こういうメカニズムがちゃんと揃っているのが Frontier の良いところでは
あります。

でも、やっぱり、ちゃんと印刷された UserTalk Reference が欲しいな……

ショージ@ハートランド さんからのコメント
( Thursday, March 14, 1996 08:45:35 )

なるほど!了解しました。やってみます。

>でも、やっぱり、ちゃんと印刷された UserTalk Reference が欲しいな……

ですよねぇ。僕はいろんなところにブックマークを付けちゃって、なにがなん
だか分からなくなっています(^_^;)。とりあえずverbリストを見ながらいろい
ろとやっていますが、分からないことも多いです。宝探しみたいな気分が楽し
いといえばそれまでなんですが・・・。

で、新しい問題なんですが、Counterで、例えば以下のようなページアクセスの
仕方についてです。

 http://www.yourdomain.co.jp/

という時と

 http://www.yourdomain.co.jp/index.ftml

これは共に後者のindex.ftmlにアクセスをするのですが、カウンターは別にな
ってしまいます。今のところ前者に統一して使用することで何とか動いていま
すが、これはちょっと面倒ですね。スクリプトを解析していくうちに何とかな
るのかも知れませんが、皆さんもお気を付けください。

ショージ
show@heartland.co.jp



ショージ@ハートランド さんからのコメント
( Thursday, March 14, 1996 09:10:09 )

で、気がついた事を追加します。

NetScape2.0と1.1Jの違いです。2.0で<ホームページに戻る>とカウンタが
追加されますが、1.1Jだとカウントされないんですよ。

う〜む、アクセスの仕方と言うか、キャッシュの扱い方が違うんでしょうか?

ショージ
show@heartland.co.jp

ショージ@ハートランド さんからのコメント
( Thursday, March 14, 1996 10:37:05 )

立て続けですみません(^_^;)

一応、追加しました。たったの2行です。

system.agentsを開いてnew script、名前はanything OK!
on <name>を削除して

> clock.waitSeconds (300)
> fileMenu.save()

です。はじめは fileMenu.save() だけでやったんですが、これだけだとセーブ
しまくってくれちゃうので、もうあたふたしました。スクリプト本体を削除す
ることで事無きを得ましたが、久々にパニックを味あわせていただきました。

で、疑問に感じているのはwaitの部分でタスクを取られてしまっているんじゃ
ないかと言うことなんです。ですから、もしカウンタだけのためにセーブする
のであればカウンタのtable(suite.webServer.utilities.counters)が更新
された時のみセーブするようなスクリプトにした方が良いのかもしれません。

しかし、面白いですねぇ。というより、簡単すぎますねぇ。楽しくなってきま
した。オブジェクトを視覚的に捉えられるという発想が素晴らしいです。

ショージ
show@heartland.co.jp

田中求之 さんからのコメント
( Thursday, March 14, 1996 16:01:40 )

>NetScape2.0と1.1Jの違いです。2.0で<ホームページに戻る>とカウンタが
>追加されますが、1.1Jだとカウントされないんですよ。

>う〜む、アクセスの仕方と言うか、キャッシュの扱い方が違うんでしょうか?

NetScape 2.0 では、 IF-MODIFIED-GET (もし更新されていたらデータをちょう
だい)でアクセスする際に発行するヘッダーを、例によって(笑) Netscape 独自の
拡張を行っています。このため、この拡張形式に対応していないサーバーの場合は、
Netscape がキャッシングをしているページ/画像であっても、かならず新たに
データが送られます( IF-MODIFIED-GET が無視され、通常の GET として
処理されます)。

で、WebSTAR 1.2.4 は、この Netscape 拡張に対応していないというわけです。

おそらくこれが原因でしょう。

まもなくリリースされる 1.2.5 では対応するそうですので、そうすると、解決
すると思います。

今のままだと、画像ファイルなんかも、アクセスの度に、かならず転送するように
なっているんですよ。


で、Frontier ですが、面白いし、よくできてますよね。

とりあえず、私は、DocServer から、全 Verb の name, syntax, parameter
をテキストに落とし、それを印刷したものを手元に置いてあります。

田中求之 さんからのコメント
( Thursday, March 14, 1996 16:55:04 )

>で、疑問に感じているのはwaitの部分でタスクを取られてしまっているんじゃ
>ないかと言うことなんです。ですから、もしカウンタだけのためにセーブする
>のであればカウンタのtable(suite.webServer.utilities.counters)が更新
>された時のみセーブするようなスクリプトにした方が良いのかもしれません。

カウンタのスクリプトに組み込むと、カウンタの処理が遅くなりますので、
やはり Agent で見張ることになるでしょうね。

で、clock.waitSeconds() ではなく、clock.SleepFor() を使うのは
どうですか? これ、たぶん、AppleScript の idle の時と同じで、
指定した間隔の間は、Agent が呼ばれなくなるはずです。

ショージ@ハートランド さんからのコメント
( Thursday, March 14, 1996 17:13:07 )

>で、clock.waitSeconds() ではなく、clock.SleepFor() を使うのは
>どうですか? これ、たぶん、AppleScript の idle の時と同じで、
>指定した間隔の間は、Agent が呼ばれなくなるはずです。

了解しました。やってみます。今日一日、自分の作業マシンでバック
グラウンドで走らせていましたが、それ程タスクを取られている感じ
も無かったので、ちょっとだけ安心しています。

>カウンタのスクリプトに組み込むと、カウンタの処理が遅くなりますので、
>やはり Agent で見張ることになるでしょうね。

Agentの中で更新されたかどうかのチェックをしようと思ったんですが、
どのような処理をさせるべきか分からなかったので、今日は保留しまし
た。

>とりあえず、私は、DocServer から、全 Verb の name, syntax, parameter
>をテキストに落とし、それを印刷したものを手元に置いてあります。

僕もやろうと思いましたが、とりあえずマニュアルをプリントアウトし
たところで力尽きました。だって、179ページもあるんですもの。早速、
専用ファイルを購入して綴じました。

とりあえず、意気込みだけはばっちりと言うことで、同僚からはFB IIは
どうした!と言われましたが(^_^;)、まぁ、今のところこっちの方が
面白くなってきました。

ショージ
show@heartland.co.jp

大西 日出海 さんからのコメント
( Tuesday, August 27, 1996 19:35:36 )

Frontierを始めてみようと思うのですが、日本語で解説された
書籍・WEB_SITEはないのでしょうか。

田中求之 さんからのコメント
( Wednesday, August 28, 1996 01:30:30 )

残念ながらないと思います。

また、Frontier のエディタは日本語(2バイト文字)を正しく扱うことができ
ませんので注意してください。


大西 日出海 さんからのコメント
( Wednesday, August 28, 1996 11:23:46 )

やはりそうでしたか。
>また、Frontier のエディタは日本語(2バイト文字)を正しく扱うことができ
>ませんので注意してください。
使ってみて気がつきました。日本語を扱うには、何か方法があるのでしょうか。



田中求之 さんからのコメント
( Wednesday, August 28, 1996 11:43:16 )

>日本語を扱うには、何か方法があるのでしょうか。

ないです。新しいバージョンでは、多少は良くなっているようですが(まだ試していま
せん)、基本的には、2バイト文字言語での仕様を考慮されていないツールと言わざる
をえないものだと思います。

機能的には素晴らしいものをもっているんですけどね。