WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:Statusコードの返却について

0:[投稿] (^^)? [2002/09/09 15:16 ][環境:UNIX系+IE UNIX系+Perl]

お世話になります。m(_ _)m

PerlでStatusコードを返却する場合は、
どうすれば良いのでしょうか?
Content-Typeを設定する場合は、(1)の様に記述すれば
宜しいのですが、Statusの場合に、(2)の様に記述しても
正常に動作しません。

(1) Content-Typeの設定
   print "Content-Type: text/plain\n\n"  ;

(2) Statusの設定
   print "Status: 600 INVALID PARAMETER\n\n" ;

以上、宜しくお願い致します。


1:[回答] ふじ [URL] [2002/09/09 17:19 ]

Linux + Apache-1.3.26 で、

#!/usr/bin/perl
print "Status: 600 INVALID PARAMETER\n";
print "Content-Type: text/html\n\n";
print "600\n";

を status.cgi として実行したところ、

GET /status.cgi HTTP/1.0

HTTP/1.1 600 INVALID PARAMETER
Date: Mon, 09 Sep 2002 08:07:43 GMT
Server: Apache/1.3.26 (Unix)
Connection: close
Content-Type: text/html

600

という結果が得られました。


>「正常に動作しません」
というのを具体的に(どのような動作を期待して、どうなったのか)教えてください。
# HTTP のステータスコードには普通600番なんてのはない、というオチだったら困る。


2:[回答] (^^)/ [2002/09/09 21:51 ]

他のCGIからターゲットのCGIを叩いて特別な事をさせたかったりして。。。


3:[質問] (^^)? [2002/09/09 22:19 ]

ご回答、ありがとうございます。m(_ _)m

JavaサーブレットでSetStatusを使用し、コード(600)
を返すと、以下の様になります。
Perlで同じ事を実現させようとしたのですが、出来ませんでした。
Perlについても、CGIについても初心者なもので、恥ずかしい
限りですが、もしかして、「RFC2616とRFC2518」で定義
されていないコードは返せないのでしょうか?

【java実行時の実行結果】
 HTTP/1.1 600 cannot
 Date: Mon, 09 Sep 2002 13:08:31 GMT
 Server: Apache/1.3.14 (Unix) mod_jk
 Servlet-engine: Tomcat Web Server/3.2.1 (JSP   1.1; Servlet 2.2; Java 1.3.0; SunOS 5.8  sparc; java.vendor=Sun Microsystems Inc.)
 Proxy-Connection: close
 Connection: close
 Content-type: text/html

 <head><title>Error: 600</title></head>
 <h1>Error: 600</h1>
  <h2>Location: /api/aGetPOIFromCrclByGnr</h2><b>INVALID PARAMETER</b><br></body>

【PerlでStatusコードを返却した場合】
 ブラウザの画面上に「Status: 600 INVALID PARAMETER」が表示され、Statusとしては
 返りませんでした。


4:[完了] (^^)? [2002/09/09 22:41 ]

ふじ殿、(^^)/殿、ありがとうございました。
m(_ _)m

先程、長々と状況を説明してしまいましたが、ふじ殿の
サンプルソースを見て、修正したところ、ステータスが返る様に
なりました。
原因は、以下の通りです。

【原因】
 ・修正前
   print "Content-Type: text/html\n\n"  ;
   print "Status: 600 INVALID PARAMETER\n" ;
   print "600\n" ;

 ・修正後
   print "Status: 600 INVALID PARAMETER\n" ;
   print "Content-Type: text/html\n\n"  ;
   print "600\n" ;

以上、お手数をお掛け致しました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World