06/05/31 19:45:21 qTr6Ebfx
誘導していただいたのでこちらにて質問させてください。
HTTPレスポンスヘッダに206を指定しファイルをCGI経由でDL
させようとすると、500エラーが出てしまいます。
具体的には下記のようにしております。
print "HTTP/1.1 206 Partial Content\n";
print "Last-Modified: Wed, 24 May 2006 18:41:30 GMT\n";
print "Pragma: no-cache\n";
print "Accept-Ranges: bytes\n";
my $range = $ENV{'HTTP_RANGE'};
if($range =~ m/^bytes=(\d+)\-(\d+)$/){
my $offset = $1;
my $end = $2;
my $len = $end - $offset + 1;
print "Content-Range: bytes $offset-$end/$len\n";
$filesize = $len;
}
print "Content-Length: " . $filesize . "\n";
print "Content-Type: $content_type\n\n";
print while(<IMG>);
close(IMG);
エラー内容は「Bad header=HTTP/1.1 206 Partial Content」ですので
これを外せばエラーは出ないのですが、206を返す手段があれば
ご教示いただきたく思っております。 宜しくお願いいたします。
98:nobodyさん
06/05/31 22:22:31
Status: 206
は?
詳しくはrfc3875を読むべし。
99:nobodyさん
06/06/01 07:47:48
>>97
NPH (Non Parsed Header)
100:nobodyさん
06/06/02 02:01:04
このスレに誘導するたぁ相当のアホだな
101:nobodyさん
06/06/04 13:53:27 TEaMbGuj
最近、ウェブ系の仕事を始めたものなのですが
CGIの負荷軽減テクニックみたいなのをまとめたページとか書籍などで
これぐらいは読んでおけ、とかいうのがあったら教えてください
102:nobodyさん
06/06/08 04:01:18
>>101
CGIは使うな
103:nobodyさん
06/07/13 05:52:24 W+LiZmFW
sage
104:nobodyさん
06/07/27 11:56:01 g7jO7iq/
保守
105:nobodyさん
06/07/27 16:12:33 1uzwaimq
perlのコーディングスレが1000超えたまま次スレが見つかりませんでしたので
ちょっとこちらでお願いできませんでしょうか?
ダメでしたら誘導お願いします。
よければ回答お願いします。
perlの話です。
hoge.csvのファイルサイズが一定以下なら処理を中断してエラーメッセージを出したいのですが、
open FH,"hoge.csv";
print length <FH>;
これで一行目のはわかります。ループ処理すれば全行分もわかります。
でももっと一発でいける記述はないのでしょうか?
宜しくお願いします。
106:nobodyさん
06/07/27 16:24:17
>>105
新スレ立ててそこで質問してくれ。
ちなみに、私は立てられなかった。
107:nobodyさん
06/07/27 17:08:40
>>105
ファイルサイズを見ればいい
108:nobodyさん
06/07/27 17:13:48
>>105
$size = (stat "hoge.csv")[7];
109:nobodyさん
06/07/27 17:35:44
-s でもよくね?
110:105
06/07/27 19:52:08 1uzwaimq
>>108
statなんていう関数があったんですね。
物凄いありがっとぐ。
111:nobodyさん
06/08/03 20:35:54
保守ヤメレ
112:nobodyさん
06/08/11 11:58:00 nbBuAcLl
URLリンク(xx.jp)
というURLで、
print "Content-Type text/xml;charset=UTF-8\n";
print "Content-Length: ", length($data) + $data =~ s/\n/\n/g ,"\n\n";
print $data;
と返すように出力させています。(言語はPerlです)
$dataは
"<data no='1' />"
のような簡単なXMLを記述しています。
これに、とある会社がプロキシサーバを通してアクセスすると、
502を返してエラーになるみたいなのです。
プロキシなしで直でアクセスすれば<data no='1' />と
見れるようです。
恐らく、ヘッダ情報が不正とかそんな理由で弾かれているのだと思うのですが、
なにが足りないのかわかりません。
Content-Typeをapplication/xmlにしても同様のエラーがでるようです。
その会社は、サイト製作したクライアントのお得意様で、
本来ならその会社の人と詳しく調べるべきなのでしょうが
自分とはほとんど面識の無いのです。
こちらとしてはできる限りのことをあらかじめしておくくらいしかなく
困った状態なのですが、そのプロキシサーバのログ等がわからない状態で
やれることはありませんでしょうか。
113:112
06/08/11 12:01:40 nbBuAcLl
そのプロキシサーバの設定によっちゃどうやっても
無理な可能性もあるわけで、無茶な注文なんですが、
クライアントに作り手が悪いと思われているので
できる限りのことはしたいのです。
どなた様かお力を・・・
オラに力を
114:nobodyさん
06/08/13 00:54:08
print "Content-Type text/xml;charset=UTF-8\n";
は
print "Content-Type: text/xml;charset=UTF-8\n";
じゃなくて?
あと、ヘッダの改行は \n より \r\n の方が仕様に準拠しているそうですが...。
関係あるかな?
115:nobodyさん
06/08/13 01:17:38
そう言えば改行の個数をcontent-lengthに足してるのも怪しいな。
bimode STDOUT;して改行コードがいじられないようにするとか。
116:nobodyさん
06/08/14 19:59:29
串通してる時点で、サポート外だって言えばいいだけなような。
117:nobodyさん
06/09/30 17:19:05 wXHf+VTZ
定期age
118:nobodyさん
06/10/10 09:02:20 p77Yt6GB
定期sage
119:nobodyさん
06/11/01 09:21:57 L/Bbrvk1
スレ違いだったので移動してきました。
とあるアップローダーを無料サーバーで運営しています。
認証しないとダウンできないようにCGIを介してダウンロードさせる
仕組みなのですが無料サーバーゆえに30秒以上たつとプロセスが自動で
終わってしまうのです。低速の方が10MBのデータをダウンするのに
10分かかるとした場合に
CGIが出力したデータはサーバー側のバッファに溜まり普通に終了すると思ったのですが
どうなのでしょうか?
CGIはだだ ファイルを少し読み込んで出力のくりかえしです。
120:nobodyさん
06/11/01 13:51:29 L/Bbrvk1
上に関連して
URLリンク(x-beat.com)
でアップローダーやってるのですが
■負荷対応
・実行時間が30秒を越えるタスク(通常は1秒以内)、CPU使用率が15%を越えるタスク(通常は0.5%以内)は、強制終了されます。
自分は低速なのでupするのに 3分かかるのですがアップロードできます。
データを送信してる最中はcgiは実行されてないのでしょうか?
121:nobodyさん
06/11/01 14:17:40
ダウンに10分かかるならCGIはずっと実行中
アップローダーでCPU使用率15%超えるようなものは捨てたほうがいいよ
アップに3分かかるならその間はCGI実行される前だ
CGI実行の始めと終わりで時間差出せば簡単に確認できるやろ
122:nobodyさん
06/11/01 14:22:55 L/Bbrvk1
どうもです。確認してみます。
>アップローダーでCPU使用率15%超えるようなものは捨てたほうがいいよ
これは別の方法かもしくは低速は無視するということですか?
123:121
06/11/01 14:25:55
どうしても無視したくないならRangeヘッダに対応するとかすりゃいいんじゃないの?
124:121
06/11/01 14:31:30
ま、それ以外だとデカいファイルだったら小分けにするとかいろいろあるやろ
125:nobodyさん
06/11/01 14:36:50
なるほど考えて見ますありがとうこざいました。
126:nobodyさん
06/11/04 22:42:49
30秒というのはCPU時間のことなんだが。
127:nobodyさん
06/11/09 00:44:58
mod_fast_bbs
128:nobodyさん
06/12/02 10:39:48 HKfE7B2v
PerlでCGIを作成しています。
HTMLのformタグでaction="○○○.cgi?mode=○○○"とすると、CGI側が上手く値を取得出来ません。
これは仕様ですか?
129:nobodyさん
06/12/02 15:38:24
$ENV{QUERY_STRING}から取得できなければwwwサーバが環境変数を正しくセットできてないか
ブラウザのバグ
130:nobodyさん
06/12/03 10:33:19
STDINとQUERYで上手く棲み分け出来てないだけだと思う。
httpdやブラウザを疑うよりは128の頭を疑う方が適切。
自分の無知を棚に上げて「~~だけどバグか?」と言い出すタイプ。
131:nobodyさん
06/12/03 15:31:56
つ CGI.pm
132:nobodyさん
06/12/03 19:10:24 /6jBKu8b
はじめまして。
仲間内で使えるアップローダを作ろうと思っています。
大量のファイル(デジカメの画像)を一発アップロードすることはできませんか?
たとえば <INPUT TYPE="file" ・・・>
だと、1つずつファイルを選択しないといけませんのでちょっと手間がかかるので。
133:nobodyさん
06/12/03 19:13:58
WebProg板の範囲で何とかするなら、1つずつ手間かけて
ファイルを選択してもらうしかないんじゃね?
134:nobodyさん
06/12/03 20:22:58
>132
FTPってのを使うといいよ
135:nobodyさん
06/12/03 20:25:45 /6jBKu8b
132です、どうもありがとうございます。
PCに詳しくない人もいるのでftpはちょっときついかなとも思いますので、
しばらくは133さんに書いていただいた通り1ファイルずつということにしたいと思います。
136:nobodyさん
06/12/03 21:23:49
それか、複数ファイルを1つの書庫にしてもらい、それをアップしてもらって、鯖側で解凍、とかもできるね。
137:nobodyさん
06/12/03 23:21:24 /6jBKu8b
132です。>>136さん、どうもありがとうございます。
zipだとwinXP標準になりましたし、多少説明をいれれば誰でも使えるかもしれませんね、、
どちらにするかもう少し考えて見ます、ありがとうございます。
138:nobodyさん
06/12/03 23:43:27 BE:154547472-BRZ(5466)
js使えよ
139:132
06/12/04 00:00:05
JavaScriptを使ったらできるものなのでしょうか?
JavaScriptは詳しくないので分からないのですが・・・
140:nobodyさん
06/12/04 00:28:28
サンドボックス
141:nobodyさん
06/12/05 21:42:18 jPnOowzY
URLリンク(ryzo.ddo.jp)
どうもコーディングモチベーションが沸かないのでひとつ感想でもくれ。
一応自作CGIだ。
142:nobodyさん
06/12/07 15:28:36
>>141
どういうタイプのCGIか(BBSとかSNSとかその他もろもろ)説明してくんなきゃ、
アクセスすらしたくない。
143:nobodyさん
06/12/07 23:25:13 1rivuzCe
説明するの面倒くさいので
そんじゃ。
144:nobodyさん
06/12/12 17:23:37 G/IH0bRf
HTMLテンプレート仕様を実装しようと思ってます。
PHPではSmartyを使ってましたが、Perlでは好みのテンプレートエンジンがありませんので作ろうと思っています。
ここで質問ですが、変数はどのような記述にしたほうが良い(効率、見栄えなど)ですか?
例:Smarty / {$var ... }
例:HTML::Template / <TMPL_VAR NAME=" ... >
みなさんのご意見をお聞かせ下さい。
145:nobodyさん
06/12/12 17:49:18
自分が使うんだから自分がしっくりくるものにすれば
それすらも決められないの?
146:nobodyさん
06/12/13 10:12:16
template-toolkitじゃ駄目なの?
smartyとそれほど変わらず使えるよ。
ttの方が高機能だし。
147:nobodyさん
06/12/23 14:55:04 PYbXEm5D
PerlでCGIを作成しているのですが、POSTでmodeを送信してCGI側で処理を振り分ける際に、HTMLのソースがそのまま出力されてしまいます。
ソースがそのまま表示されて、手動で更新ボタンを押すとちゃんとWebページとして表示されるのですが・・・
何故でしょうか?
148:nobodyさん
06/12/23 14:58:42 PYbXEm5D
事故解決しました。。。
クッキー書き込み&削除の際に\nが出力されておらず、Content-Typeが出力されていなかったようです/(^o^)\オワタ
149:nobodyさん
07/01/28 03:10:26
cgiの質問ってここでいいのかな?
任意のURLをダウンロードするにはどうしたら良いのですか?
うーむ、説明しにくい…
WikipediaのURLを入力すると、余計なタグを消して携帯用に整形 みたいな事をしたいんですが
検索しようにも、検索キーワードすら分かりません
命令名だけでもお願いします
150:nobodyさん
07/02/01 00:26:48 Cze5DYpz
FC2でCGIを使った掲示板を作っているのですが
index.htmlがトップページで
index.htmlとpublic_htmlの位置関係がわかりません。
掲示板の場所はpublic_html/cgi-bin/○○.cgiなんですが
index.htmlはどの部分に持ってきたらいいのでしょうか?
151:nobodyさん
07/02/01 02:20:01
>>149
つ locationヘッダ
>>150
つ 絶対参照
152:149
07/02/01 03:08:51 BE:5661656-2BP(20)
>>151
おお、ありがとうございます
が、locationヘッダはリダイレクトに使うみたいな機能のようで…
そうじゃなくて、ユーザーが指定したURLを、サーバーにダウンロード
153:149
07/02/01 03:12:19
>>151
おお、ありがとうございます
が、locationヘッダはリダイレクトに使うみたいな機能のようで…
そうじゃなくて、ユーザーが指定したURLを、サーバーにダウンロードするにはどうしたら?
って感じです
Wikipediaの例で言うと、
ユーザーがWikipediaのURLを指定
サーバーのcgiがWikipediaから指定されたURLをサーバーにダウンロード★
cgiがダウンロードしたソースを整形
整形したソースをユーザーに送る
の、★の部分の命令です
連投になっちまった
154:nobodyさん
07/02/01 06:14:13
>>153
言語が書かれてないけど
perlならLWP
PHPならそのURLでopen
155:149
07/02/01 14:41:03
>>154
バッチリこれです
ありがとうございましたっ!
156:nobodyさん
07/02/14 18:01:11 ppCk4pJ4
偉大なる先輩方に質問です。
二項分布の計算で
$x = ((1/$a)**$z * (1-1/$a)**($zz-$z));
$a=6
$z=400
$zz=3000
とかにすると、オーバーフローで結果だません。
出来れば、
$zは2000ぐらい、$zzは10000ぐらいまでは対応できるようにしたいのですが
どう対策すればいいんでしょうか?
157:nobodyさん
07/02/15 01:49:27
マルチ乙
158:nobodyさん
07/03/18 16:42:56 WzkWKyHv
age
159:nobodyさん
07/04/22 11:57:18 a6lsLKbE
自作のCMS(DBから文書読み出してテンプレート適用して出力)で
ETagヘッダを出力しようかと思ってるんだけど
ETagの値はどう設定するのがいいかな?
Apacheに倣って「inode-size-mtime」の十六進にするのが無難なんだろうけど
DBだとinodeとか無いし
Content-MD5ヘッダと同じでいいじゃんとか思っているんだけど問題有るかな
160:nobodyさん
07/04/22 12:44:36
DBならOIDあるじゃん
161:159
07/04/22 13:04:27
>>160
あ、そうか… thx
162:nobodyさん
07/05/05 13:25:53
WikiってCGI-perlでなんとかできるの?
Wikiと掲示板を繋げて共同ワークスペースみたくしたいのだが。
163:nobodyさん
07/12/17 16:39:39
CGI のテストに便利なミニ HTTP サーバって何?
てか,むしろアプリに Web インターフェイスでの
設定機能を組み込みたいのでそういうライブラリでも
いいんだけど・・・
164:nobodyさん
07/12/17 22:00:42
>>163
そのアプリを書いてる言語でHTTPサーバを書けばいいんじゃね?
Perlなら
URLリンク(www.kt.rim.or.jp)
URLリンク(search.cpan.org)
165:nobodyさん
08/05/12 01:47:12 /jfGDqjv
画像が3枚くらい添付できる無料メールフォームを探してます。
商用利用したいです。
罵られても構いません。
でも欲しいです。
ちなみに無料で無かったら、5000円ぐらいまでなら払えます。
166:nobodyさん
08/05/13 00:56:04 7uPi/nf3
>>165
つgoogle先生
URLリンク(www.best--web.com)
\5,250- 著作権表示なし版\10,500-
URLリンク(www.futomi.com)
\3,675-
167:質問
08/06/24 19:38:33 ACRIEaOH
質問させてください。 使用言語はperlです。
ボタンを押すとA.cgiを動かすようにしています
<form action="A.cgi" target="別フレーム">
このA.cgiは、
(1)Bファイルを読み込んでprint文によりHTML形式で別フレームへ出力させるようにしています。
(2)また、同時にC.plを実行させています。
このC.plはC.pl内でsleep 30;としてデータを30秒ごとに取得させています。
この場合、A.cgiを実行させるとC.plが終了していないせいか、(1)の出力結果が別フレーム
に出てくれません。(当然c.plをわざと終了させると問題なく出力されます)
c.plをバックグランド ( system("C.pl &"); )でやってみたりしたのですが
やっぱりうまくいきません。
どうやればうまくいきますでしょうか?
168:nobodyさん
08/06/25 01:41:01
>>167
スレ違い。
だけど、とりあえず、cronで定期的にたたくとか、javascript使うとか。
そういうんじゃない。
とりあえず、
くだすれPerl(超初心者用)2
スレリンク(php板)
169:nobodyさん
08/08/06 15:27:22
オライリーの「CGIプログラミング」第二版って本、
cgiの知識は0でも、perlが少し分かればcgiを勉強したいならコレで大丈夫ですかね?
他にいい本が見当たらなかったんですが、発行年月日が気になります…
170:nobodyさん
08/08/19 12:00:26
>>169
本屋に行っても少し新しい発行日の参考書勝ったほうがよくね?
CGIの基礎はそれでわかるはずだが、7年前と今じゃネットの事情が
だいぶ違うから
171:
08/11/28 08:28:48
PHPでカレントディレクトリ名の取得に
フルパスの{%DIR}やディレクトリ名だけの{%WWW_DIR}が
ありますが、これをPythonとPerlで取得するには
どのように書けばいいですか?
PWDからフルパスを取得して不要なな部分をカットするしか方法無い?
172:171
08/11/28 09:30:14
無かった事にしてください orz
173:nobodyさん
08/12/15 12:58:36
質問させてください。
htmlに以下のようにラジオボックスとSubmitボタンを設置しています。
[・]Aさん(変数$A)
[・]Bさん(変数$B)
[Submit]
Aさんを選択してSubmitを押すと、URLリンク(tekito.com)
Bさんを選択してSubmitを押すと、URLリンク(tekito.com)
といった感じで、選択したラジオボックスでジャンプ先URLが
変化するようにするにはどうしたら良いでしょうか?
174:nobodyさん
08/12/15 19:24:31
>>173
+ JavaScript の質問用スレッド vol.67 +
スレリンク(hp板)
175:nobodyさん
09/01/02 00:55:04 BSezfA/d
どなたか知っていたら教えてください。
CGIは、perlのパスが異なっていたら、実行されません。たとえば、"#!/usr/bin/perl"というパスを指定しているときに、"/usr/local/bin/perl"にしかperlの実行モジュールがないときに動作しない。
これをどちらのパスでも書くやり方があったような気がするのですが、どうしても思い出せない&ググってもでてこないです。
かすかな記憶ではwhichを使うようなやり方だったと思うんですが、"#!/usr/bin/which perl"でもNGです。
どなたかえらいひと、教えてー。
176:nobodyさん
09/01/02 01:01:58
> ln -s /usr/local/bin/perl /usr/bin/perl
177:nobodyさん
09/01/02 01:06:52 BSezfA/d
>>176
返事ありがとう。
でも、違うんです。symbolic linkじゃなくて、#!の1行で表現する方法があったはず・・・。
178:nobodyさん
09/01/02 02:09:44
じゃあ知らんなぁ。。
#!をだます方法なららくだ本にあったと思うが・・
179:nobodyさん
09/01/02 02:17:38
>>177
/bin/env を使うとかいうのでもない?
180:nobodyさん
09/01/02 16:37:18 BSezfA/d
>>179
おー!それだ!なんでwhichと勘違いしてたんだろう。
ありがとう!