Status204を送ると出るダイアログを消すには?

[上に] [前に] [次に]
片松 祐司 [E-Mail] 1997/12/29(月) 23:24:01
HTTP1.0では
>    204 No Response
>
>       o  メソッド:                 GET, HEAD, POST
>       o  要求されるメタ情報     :  なし
>
>   サーバーはリクエストを受けとったが返す情報がない。クライアントは同じ文書
> を表示した状態のままでいる必要がある。このステータスコードは、主として文書
> を表示したままの状態で、スクリプトへの入力を可能とするためのものである。
>翻  訳  者          :木内貴弘(kiuchi-tky@umin.u-tokyo.ac.jp)
>原文
>    204 No Content
>
>    The server has fulfilled the request but there is no new
>    information to send back. If the client is a user agent, it should
>    not change its document view from that which caused the request to
>    be generated. This response is primarily intended to allow input
>    for scripts or other actions to take place without causing a change
>    to the user agent's active document view. The response may include
>    new metainformation in the form of entity headers, which should
>    apply to the document currently in the user agent's active view.
>
と書いてあります。
確かに「エラーメッセージを出すな!」とはかかれていませんが、
以下のようなダイアログボックスを表示されてしまうと、
「文書を表示したままの状態で、スクリプトへの入力」
に支障をきたしている様な気がするのですが…
(「HTTP1.0の文書に沿わなくてはならないという事はない。」
という事は知っています。その辺のご指摘はご勘弁を)

・NN3.03[ja] 曰く
文章にデータが含まれていません。

・IE3.02[ja] 曰く
インターネット サイト http://……/nph-test204.cgi を開けません。
処理は正常に終了しました。

それとも私のスクリプトが間違っていて
ちゃんとした回避方法があるのでしょうか?

以下に私のソースを書きます。(perlです)
(試される方はファイル名の先頭に "nph-" をつけてください。)
--------ここから(nph-test204.cgi)
#!/usr/bin/perl

print "HTTP/1.0 204 NoResponse\n";
print "Server: $ENV{'SERVER_SOFTWARE'} $ENV{'SERVER_NAME'}\n";
my($sec,$min,$hour,$mday,$mon,$year,$wday,$ydat,$isdst) = gmtime();
$mon = ("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec") [$mon];
$wday = ("Sun","Mon","Tue","Wed","Thu","Fri","Sat") [$wday];
print "Date: $wday, $mday $mon 19$year $hour:$min:$sec GMT\n\n";
--------ここまで

tommy 1998/01/05(月) 19:24:48
ただ単に、Content-type: の出力がないからじゃないですか?

片松祐司 [E-Mail] 1998/01/06(火) 00:13:44
申し訳ありません。質問の内容がわかりにくかったようで…

先のHTTP1.0の引用から私は
・コードナンバー204は Content(本文) そのものを出力しなくてよい
と理解しました。
(度忘れしてしまいましたが、私が見た数冊のCGIの解説本でも
コード204のサンプルスクリプトは Content-type: は書かれていません。)

そこで以下の事を答えて欲しいのです。

1.Status204でも Content(本文)が必要なのか?

2.今現在表示している入力フォームを読み込み直さずにそのまま表示したまま
"エラーメッセージを出さずに" スクリプトを動作させる事はできないのか?
(エラーメッセージを気にしなければ目的は達成しているのです。)

よろしくお願いします。

[上に] [前に] [次に]