■掲示板に戻る■
全部
1-
101-
201-
301-
401-
501-
601-
701-
801-
901-
1001-
最新50
レス数が1000を超えています。残念ながら全部は表示しません。
2ch閉鎖の危機なんだと
1 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 08:23
【ebi&curry鯖重過ぎます Part3】
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=997804717
【ebi&curry鯖重過ぎます Part4】
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998670947
皆さん、2ちゃんねる存続の危機です
http://corn.2ch.net/test/read.cgi?bbs=entrance&key=998677445
ロビーは来週で閉鎖かも!
http://saki.2ch.net/test/read.cgi?bbs=lobby&key=998680158
2 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 08:50
λ_λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( `ー´) < べつにいいんじゃネーノ?
/ ;つ \__________
(人_つ_つ
3 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 12:45
まあ、潰れるなら潰れればいい。あったらあったで便利だけど。
有志云々って出てるけど、にちゃんの板ひとつでも引き取ろうってい
う人いるんだねえ。とてもじゃないけど誹謗中傷満載の掲示板を運用
しようという気にはなれないが。いや〜、ひろゆきは肝が太いね。
4 :
login:bin
:2001/08/25(土) 16:40
つー感じで来てみました。
Referer:
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998704295
5 :
Perler
:2001/08/25(土) 16:48
来てみた。
現状のread.cgiの改善案を、自分が書いた分だけ書き写しとく。
案っつっても既出だった訳だけども。
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998704295&st=393&to=393&nofirst=true
CGIスクリプトをnphにして、ログの最終更新時刻をLast-Modified: として
ヘッダをちゃんと出すようにして、クライアント側のIf-Modified-Since:
ヘッダに対応させるようにしたら、別にログのHTML化なんかしなくても
結構キャッシュ効果期待できるんじゃないの?
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998704295&st=563&to=563&nofirst=true
今更HEADリクエストでLast-Modifiedの問い合わせしてるブラウザは少数だと思う。
普通はIf-Modified-Sinceヘッダを投げて、サーバー側がファイルの最終更新時刻と
比較、同じファイルなら、304 Not Modifiedのステイタス・コードを投げて、ブラウザの
キャッシュを使わせるのが、HTTP/1.1では普通でしょう。
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998704295&st=506&to=506&nofirst=true
もう一点。CGIサーバーの負荷が問題になっていないのなら、
Accept-Encoding: gzip
つーヘッダを持ってるクライアント(つーか、殆どのブラウザが持ってる)
に対しては、出力をgzip化して送ってやるというのは?
そしたら一気に全体の転送量が20%くらいに減るぞ。
特に過去ログ倉庫なんて、Apacheの設定で簡単にgzip対応できる
と思うし。過去ログ作るときに、普通の過去ログと平行してgzip通して
もう一個圧縮版のファイル作成するようにして、Apacheの設定を
変更するだけ。テストとか考慮に入れなければ5分もあったら出来ると思う。
6 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 17:35
Sunに2chのバトロンになってもらおーぜ!!
7 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 17:40
>>6
ちょっと面白いかも
あぁ、Linux系のベンダーでもいいね。
「2chの高負荷にも耐えられます!!」みたいな感じで
8 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 17:55
>>6,7
だからマシン負荷が大変なのではなくて、
帯域使用量が大変なのではないのか?
9 :
7
:2001/08/25(土) 17:57
マシン管理させるかわりに回線使わせろって意味ですね、はい
10 :
名無しさん@XEmacs
:2001/08/25(土) 18:02
大学は興味ないのかなぁ? 研究対象とか言ってさ.
理由はなんとでも付くだろうに.
11 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 18:09
ただでさえセキュリティ薄いとこにそんなもん置いた日にはほそろしい事になるかと。
12 :
名無しさん@XEmacs
:2001/08/25(土) 18:25
あーそうかー.セキュリティかぁ. なるほどなー.
KAME のプロジェクトの一環にして IPv6 で
ないと見られなくしちゃうとかは? 一気に v6
ひろまりそう(笑
スマン, もうネタしか思いつかん
13 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 18:37
index2.htmlとかpreview.cgiで"Pragma"の"no-cache"の指定が
されてるみたいだけど これをやめたらどうなの?
14 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 18:47
ここの板の人達はこの手の話は詳しいのでないの?
その割にはあんまり話題になっていないな。
15 :
名無しさん@XEmacs
:2001/08/25(土) 18:55
現実的な解は出尽くしてる感があるからじゃないかな.
削除要望板とか行ってみそ.
あとは奇跡的な一致団結力で P2P システムが組み上がる
とかチャレンジ精神旺盛な外資系の資本が入るとかの
電波っぽい(実現出来たら良いけどね)案くらいしか方法が
無いんじゃないかと.
16 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 18:56
>>14
ここの住人は最適化には興味あります。
17 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:02
この板で広告収入だの寄付金だのって言ってもしょうがないからね。
技術的な解としては gzip が一番効果が大きいでしょう。これはもう語られてるし。
18 :
夜勤 ★
:2001/08/25(土) 19:05
まずは、ちょっと読んでみます。
19 :
あちらの住人
:2001/08/25(土) 19:09
もどき板&議論板、史上最大の危機
http://nh.mikage.to/test/read.cgi?bbs=discuss&key=983979360
転送量が多いので、mod_gzipを導入&結果
試験運用URLへのアクセス結果
http://nh.mikage.to/test/read.cgi?bbs=discuss&key=983531289
経路によっては問題が出る模様
20 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:09
>13
劇的な変化は望めないかと。
21 :
夜勤 ★
:2001/08/25(土) 19:12
>>5
を read.cgi に実装すると効果があるという話しですよね。
で、 read.cgi は、 C で書かれているので、ぜひコーディングも
お願いしたいのですが、
なんせ時間が無いもんで、すみません。
22 :
名無しさん@XEmacs
:2001/08/25(土) 19:15
おぉ,夜勤さんだ. チェックされてたのねん.
おつかれさまです.
月並みだけど, 応援してますから.
頑張ってくださいませ.
23 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:16
CGIつーよりもApache側の設定じゃないでしょか?
24 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:17
>>21
おおっ
現実的ってことか影で応援してる。
25 :
23
:2001/08/25(土) 19:18
ゴメソナサイ、キャッシュの効果アップのことでしたね・・・
26 :
Perler
◆GSi39OA6
:2001/08/25(土) 19:19
騙りが怖いんで、トリップ入れます。
ハンドルのとおりPerl者でして、Cはあまり自信がないんですが。。。
とりあえず、ソースを頂ければやれるだけやってみることは可能です。
具体的なやり方としては、gzipの方はクライアントからのリクエストに、
Accept-Encoding: gzip
があれば、ヘッダとして
Content-Encoding: gzip
を出力、ヘッダの出力が終わった時点で、pipeを作成してfork、片側でgzipをexec
して、親プロセス側でSTDOUTの出力をそっちにパイプするようにすれば大丈夫だと
思います。まだ追試してないんで、問題が潜んでるかもしれませんが。
ソースの受け渡し等はどうしましょうか?
27 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:19
>>21
Apacheにモジュールを組み込むという解はありませんか?
28 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:20
>>21
ソースの公開は難しいの?
別に、公開しろゴラァって訳じゃないよ
29 :
Perler
◆GSi39OA6
:2001/08/25(土) 19:22
If-Modified-Sinceの方は、まずログの最終更新時刻を見て単にLast-Modifiedを出力するようにして、
リクエストがあった際に、もしIf-Modified-Sinceヘッダがあれば、生成したLast-Modifiedヘッダの
内容と比較、同一ならキャッシュは最新と見なして200 OKの代わりに302 Not Modifiedを出力。
あと、普通のApacheの設定のままなら、ファイル名をread.cgiからnph-read.cgiに変更する
必要はあり。
30 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:23
671 名前:夜勤 ★ 投稿日:2001/08/25(土) 19:14
お騒がせして誠に申し訳ありません、
どこから閉鎖の話が出たのか分かりかねますが、まだ閉鎖は致しません。
しかし、通信料の問題は深刻です、ブラウザでは表示レスを制限させて
頂きました、板を減らし、解決させる可能性もありますが、2chその物は
閉鎖を致しません、お間違いなくよろしくお願いします。
これ本物ですか?
31 :
Perler
◆GSi39OA6
:2001/08/25(土) 19:23
あ、他の人も書いてますが、gzipに関してはmod_gzipをApacheに導入すればソースの変更は
必要ありません。
どちらがより早く対応できるかって事ですよね。。。
32 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:25
http://www.remotecommunications.com/apache/mod_gzip/
このページって、日本語化された文書って、どこかにありましたっけ?
33 :
login:Penguin
◆uryg5l2o
:2001/08/25(土) 19:26
これじゃダメ?
Apacheにmod_gzipを組み込んでHP配信を高速化する
http://www.planet-green.com/linux/mod_gzip.html
34 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:27
flag=(0=strstr(getenv("HTTP_ACCEPT_ENCODING"),"gzip"));
flagが立ってたらcontent-encoding: gzip をヘッダに入れる。
ヘッダの直後に if(flag) { stdout=popen("gzip -cfn3","w"); }
全部出力終わったら if(flag) { pclose(stdout); }
俺が自作したcgiではこんな感じでやってるよ。エラー処理は自分で入れて。
35 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:30
閉鎖始まってんじゃん。
Go ! ラウンジ
36 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:31
なるほど、Apache側でmod_gzip_item_include でdatをはずせば、かちゅ〜しゃなどでdatがとれなくなる問題は回避できるのですね?
ただ、それだと意味がなくなってしまいますか。
37 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:32
>>33
ありがとうございます。
38 :
Perler
◆GSi39OA6
:2001/08/25(土) 19:34
>>36
つーか、mod_gzipは、クライアントのリクエストヘッダにAccept-Encodingにgzipがなければ、圧縮はしないでしょ?
さすがにそこまで間抜けな実装はしてないと思うmod_gzip
かちゅ〜しゃも、意味もなくAccept-Encodingにgzipなんて入れないでしょ。
39 :
夜勤 ★
:2001/08/25(土) 19:34
Apache に手を加える(パラメータ)を変更する というのはできないです。
なぜなら、このサーバと同じサーバという売りでレンタルサーバ業を
営んでいるもので、汎用的なサーバじゃなきゃだめなんです、すんません。
でも、mod_gzip が「組み込み済みか」等は、サーバ技術者に聞いてみます。
ちょっと時間がかかります。
あと Last-Modify の方ですが、それだけでも効果はありますか?
ちょっと ソース拾ってきます。
40 :
Perler
◆GSi39OA6
:2001/08/25(土) 19:36
>>39
では、gzipをCGIソースに入れる必要がありそうですね。
mod_gzipはヘッダ見た限り入ってなさそうなので。
Last-Modifiedのほうですが、連続リロードが負荷の大部分を占めているようなら
劇的に効果があると思います。
ソースですが、メールアドレス用意しておいたほうが良いですかね?
41 :
夜勤 ★
:2001/08/25(土) 19:37
こんな感じだったりします。
main()
{
zz_GetEnv() ;
printf("Content-type: text/html\n") ;
printf("\n") ;
logOut("") ;
dat_read() ;
dat_out() ;
if(BigBuffer) free(BigBuffer) ;
BigBuffer = NULL ;
}
42 :
夜勤 ★
:2001/08/25(土) 19:38
mail アドレス用意します。
ちょっと待ってね。
43 :
名無し娘。
◆vP.bOZFQ
:2001/08/25(土) 19:38
Cでのコーディング、お手伝いできますよ。
str系の関数をどれくらい使っていいのかとか、リクエストの解釈を現状では
どれくらいやっているのかを教えていただけると助かるのですが。
#そりゃソース全部あった方が楽ですけど。
>>5
の案のうち、とりあえずどれに手をつければいいかなぁ?
44 :
ハァハァ
:2001/08/25(土) 19:39
おお!話が進んでる!!
45 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:40
>夜勤さん
批判要望板ちゃんと見てください。
46 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:41
>>45
今は必要ないです現実的でなさ杉。
47 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:41
>34
print "Hello World";
的なスクリプトで教えてもらえるとありがたいのですが、本筋とはずれてしまいますね。
48 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:42
>45 んな暇ねーだろ。ハァハァもも少し静観しろよ。
49 :
Perler
◆GSi39OA6
:2001/08/25(土) 19:41
>>41
なんだか割と簡単に出来そうな感じしますね。。。>gzipとLast-Modified
50 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:42
>>45
優先すべき事項を夜勤さんはわかっているだけ。
無理を言わないように。
51 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:42
セキュリティに問題のない範囲で(必要なら、ちょっと古いものとか)
なるべく新しいソースを目立つところで公開
↓
ここなどでの改良+各自のサーバへの分散
が現実的ではないでしょうか。
52 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:42
サーバを全部大手町のIXのビル内におきましょー
そうすればきっと大丈夫
53 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:44
>45
夜勤さんたちを信頼して、静かに待ちましょう。今は正念場です。
54 :
Perler
◆GSi39OA6
:2001/08/25(土) 19:46
>>47
print "...";ってPerl??
Perlなら、
$flag = ($ENV{HTTP_ACCEPT_ENCODING} =~ /gzip/);
print "Content-Encoding: gzip\n" if($flag);
open STDOUT, "|gzip -cfn3" if($flag);
ってとこかな。
55 :
34
:2001/08/25(土) 19:48
>>47
perlしらん。ごめん。
56 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:49
>54
ありがとうございます。
馬鹿な質問を続けますが、これって、gzip入っていないApacheだと、問題なく無視してもらえるんでしょうか?
スクリプト自体の汎用性とかその辺の問題でお聞きしたいのですけれど。
57 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:50
ここがUNIX板住民の力の見せ所だろ!
58 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:50
専門板の底力、見せてください
お願いします!
59 :
名無し娘。
◆vP.bOZFQ
:2001/08/25(土) 19:51
>>54
Cだと、"$ENV{HTTP_ACCEPT_ENCODING}"にあたるものをまずstrなりで分解して、
配列なりにして、その配列なりにgzipがあるかを確認、ってことになるのだけど、
2ちゃんでstrを使うのはかなり怖いことに思われ。
>>56
だいじょうぶ。
60 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:52
>>56
君が根本的にわかってないということだけはよく分かった
邪魔だから出てって
61 :
夜勤 ★
:2001/08/25(土) 19:52
つぎはぎだらけのコメントなしの read.c ですが、
特に問題はないと思うので、公開しちゃったりします。
で、ゴリゴリと書いてもらって。
実際にpiza2とから入れてみて、実験したいと思います。
でも、read.cgi の最適化のことは私がやろうと思いますが、それ以上は
いっぱいいっぱいだったりします。ごめんなさい。
62 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:53
>59と>60が並ぶと、人間性がはっきり浮かび出るね(笑)
63 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:53
>61
がんばってください〜
64 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:54
夜勤さんがんばってください
65 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:54
ここの板があってよかった!がんばれ!
66 :
Perler
◆GSi39OA6
:2001/08/25(土) 19:55
>>59
strstr程度なら自作しても問題ないんじゃないかな?
>>56
すみません、意味がよくわからないです。2chのCGIプログラムに関係ないのなら別スレにしますか?
>>61
お手数おかけしますが宜しくお願いします。
67 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 19:56
夜勤さんがんばれーー!!
68 :
夜勤 ★
:2001/08/25(土) 19:57
ここです。
http://piza.2ch.net/read4.txt
.c -> .txt に rename しただけです。
69 :
名無し娘。
◆vP.bOZFQ
:2001/08/25(土) 19:59
>>66
ええ、まさしく「自作すべし」です。
自作っても、そこら中に転がってますが(笑
70 :
Perler
◆GSi39OA6
:2001/08/25(土) 19:59
>>68
ありがとうございます。
strstr使ってるようなので、そのままいけそうですね>59
71 :
名無し娘。
◆vP.bOZFQ
:2001/08/25(土) 20:00
>>68-69
なんだ、既に使ってるんだったらまあいいか(笑)
72 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:01
このスレに2ちゃんねるの命運が託されているのか。。。
73 :
Perler
◆GSi39OA6
:2001/08/25(土) 20:01
とりあえず、read2ch.hが欲しいです。。
74 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:07
運用系の人間が多そうなここなの?
プログラム技術板じゃなくて?
75 :
nanashi
:2001/08/25(土) 20:08
ある程度以上大きいアスキーアートを禁止すればいいだけ
76 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:09
この板の技術力は5本の指に入ると思うふ。
77 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:09
>75
ここはUNIX板です。。。
78 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:09
プログラム板かWebprog板でやった方がが良さそうだけどね
79 :
Perler
◆GSi39OA6
:2001/08/25(土) 20:09
コンパイルできてないけど、こんな感じかな?
32c32,35
<
---
> #ifdef GZIP
> char *zz_http_encoding ;
> int gzip_flag;
> #endif
482a486,488
> #ifdef GZIP
> zz_http_encoding = getenv("HTTP_ACCEPT_ENCODING");
> #endif
507a514,519
> #ifdef GZIP
> gzip_flag = (strstr(zz_http_encoding,"gzip"));
> if(gzip_flag){
> printf("Content-Encoding: gzip\n");
> }
> #endif
509a522,525
> #ifdef GZIP
> if(gzip_flag) { stdout=popen("gzip -cfn3","w"); }
> #endif
>
510a527,529
> #ifdef GZIP
> if(gzip_flag) { pclose(stdout); }
> #endif
80 :
ハァハァ
:2001/08/25(土) 20:10
ドルバッキーは何処逝った?
81 :
夜勤 ★
:2001/08/25(土) 20:10
あっ へっだ これです、すんません。
/**/
/**/
/*
#define CM_BBSPINK
#define LOGLOGOUT 1
*/
#define TYPE_TERI
#define Katjusha_Beta_kisei
82 :
名無し娘。
◆vP.bOZFQ
:2001/08/25(土) 20:10
int zz_GetEnv(void)
{
...
zz_http_accept_encoding = getenv("HTTP_ACCEPT_ENCODING");
}
--以下、出力部分本体--
if(strstr(zz_http_accept_encoding,"gzip")){
printf("Content-Encoding: gzip\n");
--さて、どうしよう。
83 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:10
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998695422
http://piza.2ch.net/read4.txt
現在上のスレで作業中みたいです。
84 :
名無し娘。
◆vP.bOZFQ
:2001/08/25(土) 20:11
>>79
おお、すばらしい!(笑
のんびりみていられそう。
85 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:13
strtok(zz_encoding,",")で回した方がいいと思うんだけど
86 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:13
>>74
おれもそうオモフ
87 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:15
>>86
いや十分いけてると思いますが。ビール空けちゃいましたよ。
88 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:16
read.cgiで読み込む時だけ圧縮するって事ですか??
89 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:17
>>83
誤爆だよな?聞くまでも無く
90 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:18
>>89
そらそうでしょ
91 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:19
x-gzipもできれば追加した方がいいかもです。
92 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:19
>>83
あんまりよそに貼らない方がいいんじゃないかな?
変なのにここに張り付かれると面倒だよ
93 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:20
>>91
strstr("gzip")でもマッチするじゃん
94 :
名無し娘。
◆vP.bOZFQ
:2001/08/25(土) 20:20
あとは、&ls=,&st=,&to= がある場合の処理を。
これらがある場合はgzip圧縮しない、でよいのかな。
95 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:20
新スレ立てました。
転送量(料)の増加で2ch閉鎖の危機!3
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998738167
96 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:22
linux板はどうだろ? 何だかんだ言ってもCとApache_MODに精通した
人間が多いと思うのだが ただ子供が。。。
そんな人はここを見てると思って良いかな
97 :
仕様無しさん
◆NwLv.g/w
:2001/08/25(土) 20:22
cpuパワーに余力があれば -cfn3 → -cfn9にできないかな...
あとはhtml_bannerNew()の各printf最後の\nを取ると20バイトくらい(圧縮前)
小さくなるとかくらいしか浮かばない...
へたれですまん
98 :
仕様無しさん
◆NwLv.g/w
:2001/08/25(土) 20:24
って、html_bannerNew()が呼ばれるのは見つからなかったときだけか...
99 :
名無しさん@お腹いっぱい。
:2001/08/25(土) 20:25
ここの住人は、かっこいいな。
100 :
34
:2001/08/25(土) 20:26
>>93
x-gzipを吐くブラウザにはcontent-encoding: x-gzipを返す方が無難。
ところで-3でいいのか圧縮度は?
掲示板に戻る
全部
次100
最新50
read.cgi ver5.26+ (01/10/21-)