■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 最新50
プログラマが2chを救う!?2
- 211 :デフォルトの名無しさん :01/08/27 09:51 ID:pleuTSSw
- Cで焼き直すなら 叩き台にはなると思います
所謂流失版を改良したものです
- 212 :デフォルトの名無しさん :01/08/27 09:53 ID:Xn1S81fE
- >>207
だから、mod_negotiationはBaseモジュールだよ、標準。
AllowOverrideされてれば.htaccessでいじれるし。
問題はAllowOverrideされてるか・・・
- 213 :デフォルトの名無しさん :01/08/27 09:53 ID:P7yLS.2Q
- bbs.cgi はPerlの方が良いのではないかなぁ。
Cだとセキュリティホールになりやすいし。
(実際あった or まだあるみたいですし。
どっかの板のAD200XのスレでIMGタグを書き込んだりされてました。)
- 214 :デフォルトの名無しさん :01/08/27 09:54 ID:2NFCZnYc
- 流出版ってキャップのパスもハードコーディングみたいだね。
さすがに試してみたら駄目みたいだったけど。
- 215 :デフォルトの名無しさん :01/08/27 09:57 ID:95LP96f6
- >>188
> ってか *.htm{,l}が Last-Modified を吐かないのは .html{,l} が
> server-parsed になってしまっているためと思われ
なるほど。
では、ここをなんとかするだけで相当のトラフィックが節減できると思いますが、
いかがでしょうか?
とりあえず、http://xx.2ch.net/xx/index2.cgi てな形で設置してみて、
bbs.cgiとread.cgiを変更してhttp://xx.2ch.net/xx/index2.htmへのリンクを
index2.cgiに変更して、効果を測定してみる事を提案します。
切れるならserver-parsedを切るだけでかなり効果がありそうな気がするけど。
とりあえず、現在の懸念事項は流量軽減なんで、その他の開発
に関してはスレッドを分けませんか?
優先事項(回線負荷軽減)と、後回しで構わない事項
(ハード側負荷軽減、スクリプトの細かいバグ取り)
を明確にしないと、最優先事項が見えにくくなって重要な開発が後手に回る
可能性があると思うのですが。
- 216 :デフォルトの名無しさん :01/08/27 09:58 ID:cn52pBwI
- 流出版ってどっかにアップできませんか?
もちろん、そのキャップのパスとかは伏せてでいいんですけど。
要求仕様が作りやすくなるので。
- 217 :ぐ。 :01/08/27 09:58 ID:L6pat38o
- なんか話がごちゃ混ぜになっているようだが
ファイル分割して転送というのは
「connectionが増えるのは論外」でガイシュツ。
但しレイアウト変更をもって総合的に転送料を押さえる方法も
議論されてるのでテスト次第でトレードオフという所か。
ソース管理としてファイル分割なら
read.cgiはロードモジュールなので
運用時の負荷とは無関係。
こんなかんじか?
- 218 :デフォルトの名無しさん :01/08/27 09:59 ID:rjIkZc/I
- >>213
Cだとセキュリティホールになりやすいってのは根拠レス。
# まあ、Perlは書いた人にしかわけのわからんコードになりやすいから、
# 解析する気が起きないってのはあるかもな
とりあえず流出版を見せてくれい。あるいは>>208の17BBSとやらへの
リンクをきぼんぬ
- 219 :デフォルトの名無しさん :01/08/27 10:02 ID:rjIkZc/I
- いっそApacheのモジュールとして実装しちゃおうか(藁)
- 220 :デフォルトの名無しさん :01/08/27 10:03 ID:cn52pBwI
- あと、話が混乱するので、誰かbbs.cgi検討スレ建ててください。
- 221 :デフォルトの名無しさん :01/08/27 10:04 ID:19Gxyyi6
- >>193
打ち切りじゃ何も解決しないよ。
前向きな前者希望。
- 222 :デフォルトの名無しさん :01/08/27 10:04 ID:pleuTSSw
- もう書いちゃえ
http://corn.2ch.net/test/read.cgi?bbs=php&key=998794497
トリップとID生成ルーチンは2日前の時点では追従していた(同じだった)
と思います。
後、人の事は言えませんがこっちも 穴埋めのダメ出しはなるべくperl見れる人
でやった方が良いと思います
- 223 :デフォルトの名無しさん :01/08/27 10:06 ID:pleuTSSw
- 17さん見てないかなあぁ、、他力本願
僕も時間は有るのでバク取りには、協力させてもらいます
- 224 :デフォルトの名無しさん :01/08/27 10:08 ID:19Gxyyi6
- >>203
配付された人には動いてほしいっす。
- 225 :17 :01/08/27 10:09 ID:sC1iFaC6
- はいよ
http://mankomankomanko.virtualave.net/bbs.txt
http://mankomankomanko.virtualave.net/config.txt
http://mankomankomanko.virtualave.net/make.txt
http://mankomankomanko.virtualave.net/pageview.txt
http://mankomankomanko.virtualave.net/pass.txt
http://mankomankomanko.virtualave.net/read.txt
http://mankomankomanko.virtualave.net/remake.txt
http://mankomankomanko.virtualave.net/setting.txt
17スクリプト
http://www.apc.7777.net/file/bbs2ch/16a.zip
- 226 :デフォルトの名無しさん :01/08/27 10:10 ID:pleuTSSw
- わぁ。。。17さん有難う御座います
勝手に紹介しちゃってすみません (_ _)
- 227 :デフォルトの名無しさん :01/08/27 10:18 ID:59Wm4exU
- そういや、chunkedエンコーディングって手つかずか?
あれも微妙に転送料増やすはず。
Content-Length吐かせる必要があると思うが。
- 228 :369 ◆3XTuRnAc :01/08/27 10:33 ID:xXHglqmc
- 仮眠から帰ってきました。
もし作業場所が必要でしたら、例によってftp用意してますので
ご自由にお使いください。
ftp://210.170.170.131/incoming/
- 229 :♯6411 :01/08/27 10:51 ID:gosrhFCs
- 書き直しをたくらんでる方々にアドバイスしとくけど、
zlib使うんだったら、エンコーディングは
gzip使うよりもdeflate使った方が、
すこしだけ転送サイズが縮みます。
寝込みは忘れたけどIEは理解できるはず。
- 230 :デフォルトの名無しさん :01/08/27 10:55 ID:rjIkZc/I
- 2chのApacheにはmod_perlが入ってないみたいなんだけど。
使うことのないsslやらphpは入ってるけど。
サーバの構成かえちゃいけないんだっけ?
mod_sslとPHPを外してmod_gzipとmod_perlをいれたい・・・
- 231 :Perler ◆GSi39OA6 :01/08/27 10:58 ID:95LP96f6
- >>215も私です。おっちょこちょいですみません。
Content-Length吐かせる必要があるなら、メモリにgzipの結果を溜め込むか/tmp/
あたりに一旦ファイルをスプールさせる必要がありそうですね。。。
負荷が全く問題にならないのであれば、gzipを、1回目はサイズのカウント専用に起動
して、Content-Lengthヘッダ出してから、もう一回gzipを起動するというアクロバットも考えられますが。
- 232 :VC++まだ箱のなか厨房(w :01/08/27 11:01 ID:xxtDczmQ
- >229 調べてみました
IE5.5: HTTP_ACCEPT_ENCODING = gzip, deflate
NN3.3: なし
NN4.73: HTTP_ACCEPT_ENCODING = gzip
NN6.1: HTTP_ACCEPT_ENCODING = gzip,deflate,compress,identity
しらべたとこhttp://piza2.2ch.net/test/check.cgi
- 233 :デフォルトの名無しさん :01/08/27 11:06 ID:pckFEAaY
- zlibのコメント見るとmethodは現在Z_DEFLATEDしかないと書いてあるけど
これってgzip不可でdeflateのみ可ってこと?
- 234 :デフォルトの名無しさん :01/08/27 11:09 ID:pckFEAaY
- deflateがあればzlib
deflateがなくてgzipがあればgzip起動
その他はそのまま
ってことですか
- 235 :デフォルトの名無しさん :01/08/27 11:11 ID:rH3n9S2o
- >>232
Opera 4.01 : HTTP_ACCEPT_ENCODING = deflate, gzip, x-gzip, identity, *;q=0
- 236 :デフォルトの名無しさん :01/08/27 11:14 ID:rjIkZc/I
- >>231
現状の標準出力に垂れ流すんでなくて、
内部でgzipを実行して、Lengthと圧縮結果を吐くように改造するとか。
- 237 :デフォルトの名無しさん :01/08/27 11:18 ID:59Wm4exU
- >>233
gzio.cみれば分かると思うけど、。
zlibに特殊な初期化を施して、gzipのヘッダをつければいい。
- 238 :デフォルトの名無しさん :01/08/27 11:24 ID:kQSWx7uc
- IEはヘッダにはAccept-Encoding: gzip, deflateと含めているにも
関わらず、実際にdeflateでエンコードしたデータを喰わせても
解釈できないです。
- 239 :Perler ◆GSi39OA6 :01/08/27 11:24 ID:95LP96f6
- index2ををアップしました。
ftp://210.170.170.131/incoming/perler/index2.c.1
index2.c.1は何度か上書きしてるので、ダウンロードした人も
ファイルサイズ比較して確認してください。
私の環境では動いていますが検証をお願いします。
- 240 :デフォルトの名無しさん :01/08/27 11:26 ID:59Wm4exU
- あれ?それって、mod_negotiation(標準モジュール)つかえば、
負荷も少なくていいね、って話になってなかった?
- 241 :デフォルトの名無しさん :01/08/27 11:28 ID:yk7J4mpk
- 不具合報告ココでいいよね?(汗)
>208 名前:名無しさんの声 投稿日:01/08/27 11:11 ID:yk7J4mpk
>なんか掲示板おかしくない?
>11〜3時まで読み込めませんってのが今出てきた
>!=と==を間違えてないでしょうか?(苦笑)
>板はココ
>http://ton.2ch.net/test/read.cgi?bbs=sec&key=998320408
- 242 :デフォルトの名無しさん :01/08/27 11:30 ID:ESi5jL8g
- サーバー側負荷軽減はこっちでもやってるみたいです。
http://www.gedoh.org/aki/2ch/wiki/yukiwiki.cgi?mycmd=read&mypage=TopPage
現状では回線負荷軽減の方が優先かもしれないですが…。
- 243 :デフォルトの名無しさん :01/08/27 11:31 ID:95LP96f6
- >>240
AllowOverrideされてるかどうか確かじゃない。
それと、index2.cはIf-Modified-Sinceに対応してる。
というか、そっちの方が肝心。
- 244 :デフォルトの名無しさん :01/08/27 11:32 ID:kQSWx7uc
- >>241
がいしゅつです。read.cgiが入れ替われば直ります。
ついでに不具合報告は板違い。
- 245 :デフォルトの名無しさん :01/08/27 11:34 ID:pckFEAaY
- feof()でエラーチェックは無しですか >index.c.1
- 246 :Perler ◆GSi39OA6 :01/08/27 11:35 ID:95LP96f6
- >>242
サーバー側負荷は余裕があるそうですし、gzip対応しても負荷はほとんど変わらなかった
みたいですからね。。。
サーバー負荷は負荷軽くしても、2chの危機にはあまり貢献出来ないのかもしれない。
- 247 :デフォルトの名無しさん :01/08/27 11:44 ID:Xn1S81fE
- >>243
> AllowOverrideされてるかどうか確かじゃない。
それは確かにそうだけど、
> それと、index2.cはIf-Modified-Sinceに対応してる。
> というか、そっちの方が肝心。
もしindex2.html の Server-parsedを切れるならLast-Modified 吐きますよね。
これは 2ch側で設定したんじゃないかな?
デフォルトで .htm[l] 全てをパースさせて.htaccessでoverrideさせない
サーバなんて考えにくいです。
- 248 :デフォルトの名無しさん :01/08/27 11:45 ID:GRBfg3.A
- 本格的な転送量縮小をするにはbbs.cgiを改造しないと・・・
- 249 :デフォルトの名無しさん :01/08/27 11:54 ID:79V5c8UI
- bbs.cgiはセキュリティ上の問題から、多分公開されないと思います
- 250 :Perler ◆GSi39OA6 :01/08/27 11:56 ID:95LP96f6
- >>247
その通りなんですが、後々「Overrideできませんでした。。。」となってから
慌てて実装するよりは、今のうちから保険かけといた方が良くないでしょうか?
read.cへのIf-Modified-Sinceの実装も、mod_gzipで代用できるじゃん、
とか言われながら作った経緯があるんで。。。
- 251 :247 :01/08/27 12:03 ID:Xn1S81fE
- >>250
そりゃそうです。
作っておくことに異存はないです。
いや、243を見てOverrideできてもLast-Modifiedの問題は
解決しないと言ってるように見えたんで。
誤解かもしれないけど一応っていう感じでした。
では、飯食ってこよ。
- 252 :デフォルトの名無しさん :01/08/27 12:03 ID:2NFCZnYc
- >>249
>>178
管理側の見解
>>225
流出スクリプト・17さんによる改造(書き直し)
- 253 :♯6411 :01/08/27 12:19 ID:Gdy5fRSM
- >>238 そうダったのか、なんてこったい、ファック!
- 254 :Perler ◆GSi39OA6 :01/08/27 12:21 ID:95LP96f6
- >>251
了解です。
動作検証してみた人はまだいませんか?
>>250
read.cへのContent-Encoding: gzipの実装だな。書き間違いです。
- 255 :♯6411 :01/08/27 12:26 ID:Gdy5fRSM
- >>240 そだね〜
後学のために解説しておくと、
mod_negotiation有効になってるのであれば、
GET /index.html
Accept-Encoding: gzip
のリクエストに対し、
index.html.gzがあったら、
Content-Type: text/html
Content-Encoding: gzip
で200を返してくれる、のだ。
もちろん、GET / に対して、index.html.gz が
返るようになる。(もちろん設定変更してたら
この限りではないので、突っ込み煽り大歓迎)
つまり、さしあたっては、./index2.html.gz を配置して
様子を見て貰いたいんだが…
ln -s index2.htm index2.html.gz してもらえると。
(本来は逆だ…)
- 256 :デフォルトの名無しさん :01/08/27 12:37 ID:kQSWx7uc
- >>255
一時期はindex.html.gzだったけどダメだったよ
index.htmlがあるとindex.html.*は見に行かない仕様みたい>mod_negotiation
- 257 :仕様無しさん ◆NwLv.g/w :01/08/27 12:43 ID:ilyBDhYw
- read14.2からHTML部分をヘッダに追い出したものを作って
ftp://210.170.170.131/incoming/2ch-read-current/read14.2.1.c
ftp://210.170.170.131/incoming/2ch-read-current/r2chhtml.h
置いときました。
- 258 :デフォルトの名無しさん :01/08/27 12:45 ID:Xn1S81fE
- >>256
当然、そう設定しなきゃ見に行きませんよ。
.htaccessなり、httpd.confなりで
- 259 :デフォルトの名無しさん :01/08/27 12:53 ID:kQSWx7uc
- >>258
デフォルトでそうなってるはずだけど
汎用サーバなんでしょ?
- 260 :♯6411 :01/08/27 12:54 ID:Gdy5fRSM
- >>258 あーそうだった。
漏れも設定ちょっといじった記憶があった。
フォローさんくすー。
- 261 :デフォルトの名無しさん :01/08/27 12:57 ID:kQSWx7uc
- それから「たとえ設定してあっても」index.htmlがあると
index.html.*は見に行かない。見に行くのはindex.html
がない場合のみ。
- 262 : :01/08/27 13:20 ID:xheJAhZs
- ガイシュツだったらすまんが、クッキーの処理を
CGIの方でやればJAVAScriptの分だけ削れると思うがどうだろ?
- 263 :デフォルトの名無しさん :01/08/27 13:24 ID:kQSWx7uc
- せっかくindex2でCGIを通すんだからそれもいいかもね。
MacでCookieが保存されない不具合も解消できるだろうし。
- 264 : :01/08/27 13:32 ID:xheJAhZs
- コレもガイシュツかな?
mail欄をやめて上げ下げ専用のチェックにすれば
mail欄分、削れるのでは?
どーせメール欄とかメールリンクなんて役にたってないんだしさ。
<a href="mailto:sage "></a>この部分が減るだけでもそこそこ効果あるかと。
さげなら名前を斜体にするとか。
- 265 :元Winプログラマ :01/08/27 13:41 ID:mLq02ntM
- メール欄わりと使われてますよ
ねたバレをメール欄に書いておいて知りたい人だけ読むようにするとか
- 266 :Sherry ◆RKMbxbuc :01/08/27 13:53 ID:P7yLS.2Q
- 新しいリンク方法を提案します.
これなら,かなりリンクの消費バイト数を減らせると思うのですが,いかがでしょ?
基本的に,数字は62進数になおします.
これで,3843 記事目までは2桁で表記できます.
スレ全体の指定は
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501
http://piza2.2ch.net/read.cgi/tech/998845501/
のように,PATH_INFO を使用するようにします.
こうすると,BASE指定などしなくても,記事番号だけでリンクが張れます.
記事番号の指定は以下のような感じで・・・
記事番号を指定する場合
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&st=4&to=4&nofirst=true
http://piza2.2ch.net/read.cgi/tech/998845501/4
記事番号だけを書く.
リンクは,a href=4 で張れる.
記事番号を範囲で指定する場合
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&st=4&to=6&nofirst=true
http://piza2.2ch.net/read.cgi/tech/998845501/4.6
開始と終了を . で区切る.
最新n記事は,
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&ls=50
http://piza2.2ch.net/read.cgi/tech/998845501/-o
-50 のように指定.
index2.htmlなどから,一定範囲を表示し,nofirst=false にあたる場合は,
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&to=100
http://piza2.2ch.net/read.cgi/tech/998845501/,1c
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&st=101&to=200
http://piza2.2ch.net/read.cgi/tech/998845501/1d,3e
このように , で区切る.
0 の場合は省略可能.
- 267 :Sherry ◆RKMbxbuc :01/08/27 13:53 ID:P7yLS.2Q
- bbs.cgi対応も必要ですが,以前の方式と新しい方式両方をサポートするようにしていて,
旧形式でリクエストが来たら新方式にLocationで飛ばすようにすれば,
read.cgi側だけで強引に対応できると思います.
a href=read.cgi?bbs=tech&key=998845501&st=4&to=4&nofirst=true
から
a href=4
なので,そのくらいしても削減したほうがよいのではないかと.
- 268 :デフォルトの名無しさん :01/08/27 13:53 ID:IDmmApXc
- 無限ちゃんねるへようこそ
http://pesuo.hypermart.net/kkk/index2.html
- 269 :Sherry ◆RKMbxbuc :01/08/27 13:54 ID:P7yLS.2Q
- 最後に,10進数<->62進数変換のソース.
#include <stdio.h>
#include <stdlib.h>
#define CHARLIST "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
#define CHARLEN 62
int from62table[128] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0,
0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, 0, 0, 0, 0,
0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, 0
};
- 270 :Sherry ◆RKMbxbuc :01/08/27 13:54 ID:P7yLS.2Q
- char *to62(int num)
{
char *dst;
char *p;
char tmp;
int len;
int i;
dst = malloc(6 + 1); /* 62^6 = 0xD398ED040 */
if(!dst) {
exit(1);
}
p = dst;
while(num)
{
*p++ = CHARLIST[num % CHARLEN];
num /= CHARLEN;
}
len = strlen(dst);
for(i = 0; i < len/2; i++)
{
tmp = dst[i];
dst[i] = dst[len - i - 1];
dst[len - i - 1] = tmp;
}
return dst;
}
int from62(char *numstr) {
int num = 0;
while(*numstr)
{
num *= CHARLEN;
num += from62table[*numstr & 0x7f];
numstr++;
}
return num;
}
int main(int argc, char *argv[])
{
if(argc != 2) {
fprintf(stderr, "usgae: %s 123\n\n", argv[0]);
exit(0);
}
printf("%s\n", to62(atoi(argv[1])));
printf("%d\n", from62(to62(atoi(argv[1]))));
exit(0);
}
- 271 :デフォルトの名無しさん :01/08/27 14:00 ID:kQSWx7uc
- >>267
LocationよりBASE hrefで新方式のパスを指定してそのまま出力したほうが
よくありませんか? リダイレクトするとリクエストの回数が2倍になるので。
しかしよく思いつくなあ。
- 272 :Perler ◆GSi39OA6 :01/08/27 14:01 ID:95LP96f6
- >>266
PATH_INFOはいい案ですね。
62進法は、ドットとアンダースコア辺りを足して、64進数の方が6ビットずつ取り出す
だけなんで、計算が簡単な気がする。
- 273 :Sherry ◆RKMbxbuc :01/08/27 14:02 ID:P7yLS.2Q
- >>271
確かにそうですね.(^^;
そちらの方向の方が良さそうです.
- 274 :デフォルトの名無しさん :01/08/27 14:03 ID:yw5i/z86
- ■掲示板に戻る■ がindex2.htmlなんだけど、gzip受け付ける奴には
index2.htmを渡したほうがいいじゃない。
圧縮されてるのは、htmの方だよね。
- 275 :デフォルトの名無しさん :01/08/27 14:20 ID:pckFEAaY
- >>272
dotは範囲指定と被るから別の記号で
- 276 :デフォルトの名無しさん :01/08/27 14:34 ID:kQSWx7uc
- 62進数は手動指定がほとんど不可能になるんでちょっとやりすぎな
気がします。
冗長性が少なくなる分圧縮が効きにくくなるので圧縮を掛ければ
ほとんど変わらないのでは。
あと、「.」と「-」の意味を入れ替えることを提案します。
>>4-6のリンクは「4-6」であるほうが直感的に分かりやすいでしょう。
- 277 :デフォルトの名無しさん :01/08/27 14:37 ID:iuwjXswY
- 範囲指定はハイフンを使った方がわかりやすくていいですね。
そうなると最新記事の記号を変えなくちゃいけませんが、 "+" でどうでしょう?
- 278 :デフォルトの名無しさん :01/08/27 14:42 ID:CbLq.TAQ
- +だとエンコーディングでスペースになっちまわねえかい?
- 279 :デフォルトの名無しさん :01/08/27 14:45 ID:kQSWx7uc
- URIのパス部に利用可能な文字をフルに活用して、
・数字の場合は10進数として解釈
・それ以外は「_!~*'();:@&=+$」と英字を利用した64進数として解釈
とか…。
欠点は同じ内容を表すURIがやたらに増加することですが。
>>278
デコードするのはHTTPDではなくてCGIですからデコードしなければいいと思われ
- 280 :デフォルトの名無しさん :01/08/27 14:46 ID:pckFEAaY
- 1-10 1から10まで表示
3,5,7 3,5,7番を表示
1-5,50,100-110 1から5までと50と100から110まで表示
$10 最後の10レス表示
1-5,10,$20 1から5までと10と最後の20レス表示
こんなんでどう?
- 281 :Sherry ◆RKMbxbuc :01/08/27 14:47 ID:P7yLS.2Q
- >>276
とりあえずこのスレで62進変換だけやると,
108166 8月 27 14:34 tech.html
107234 8月 27 13:43 tech2.html
28523 8月 27 14:34 tech.html.gz
28468 8月 27 13:43 tech2.html.gz
こんな感じ.
tech2の方が62進です.
たしかに,大きな変化は無いかもしれませんね.
とりあえず,keyの方は62進なり64進なり
しちゃって良いと思います.こちらはコピペで使うと思うので(^^;
- 282 :デフォルトの名無しさん :01/08/27 14:54 ID:kQSWx7uc
- 現在の「>>番号」によるリンクをdatに埋め込む方式だと、
index2からの場合とread.cgiからの場合で異なる相対パスを
参照しなくてはなりませんが、それの対策はどうなっている
のでしょうか? bbs.cgiにdat埋め込みをやめてもらう?
- 283 :Sherry ◆RKMbxbuc :01/08/27 15:00 ID:P7yLS.2Q
- >>282
datへのリンク埋め込みをやめてもらうのが
よいのでは...
リンクはツールがはればよいことですし,
dat直読みの転送量も減らせますしね.
read.cgi側では,リンクが張ってあっても張ってなくても,
>>xxx を見てリンクを張り直すようにすれば
良いのではないでしょうか.
- 284 :369 ◆3XTuRnAc :01/08/27 15:01 ID:xXHglqmc
- すみません、ここ2日+半日の作業の反動で、めちゃめちゃ具合悪いです。
さっきまで寝込んでて、まだ具合が回復しないんで、さらに寝込みモードに入ります。
サーバーは立ち上げっぱなしにしておくので、どうぞお使いください。
- 285 :デフォルトの名無しさん :01/08/27 15:12 ID:kQSWx7uc
- 拡張子が.cgiじゃなくなると、ロボットのクロールの対象に
なって、ロボットからのアクセス量が半端じゃなく増加する
可能性もありますが…。
- 286 :デフォルトの名無しさん :01/08/27 15:20 ID:U3BzOc.o
- >>285
それはrobots.txtで制限。
- 287 :名無しさん@揚げ足 :01/08/27 15:22 ID:2Ibh3ubo
- かちゅーしゃが、アボーン時.dat全部読み直すケースですが、
アボーンされた番号を別ファイルで持つってのはだめですか?
別ファイルを読み込んで、かちゅーしゃ側でアボーン処理する
- 288 :デフォルトの名無しさん :01/08/27 15:28 ID:plW.7Hb6
- >>287
それをするぐらいなら、前の方にも話が出ているけど、
各レスの位置を記録したインデックスファイルを作る方が、
いいと思う。というか、bbs.cgiに絡む話だよ。bbs.cgiは公開
されないから、手の出しようが無い。
- 289 :デフォルトの名無しさん :01/08/27 15:28 ID:0cm50H8s
- >>287
ってか datファイル中の指定された記事番号の行だけ返すCGI作るってのも
いいかも
- 290 :デフォルトの名無しさん :01/08/27 15:30 ID:kQSWx7uc
- >>289
その案に賛成。その方法なら途中からでもgzip圧縮したものが取得できる。
欠点は透明あぼーんがあっても検出できないこと
- 291 :デフォルトの名無しさん :01/08/27 15:34 ID:7DytoZz2
- 2chサーバ上のCGIは、HTMLを返さず、
XML-RPC でリクエストを受け付けるというのはどうでしょう。
データ転送量、処理ともに軽くなるのでは。
- 292 :名無しさん@揚げ足 :01/08/27 15:34 ID:2Ibh3ubo
- >>288
インデックスファイルだと新規レスでも更新されちゃいませんか?
アボーン時に更新されるファイルだと、その時だけの読み込みができると思う
- 293 :デフォルトの名無しさん :01/08/27 15:36 ID:kQSWx7uc
- そういうブラウザで見ることをまったく考えない話題ならこっちでは
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=990334284
- 294 :デフォルトの名無しさん :01/08/27 15:36 ID:kQSWx7uc
- 293は>>291です。
- 295 :291 :01/08/27 15:42 ID:7DytoZz2
- >>293
失敬、似スレがすでにありましたか。
そっち行きます。
- 296 :デフォルトの名無しさん :01/08/27 15:49 ID:plW.7Hb6
- >>292
インデックスファイルってのは、現行のread.cgiではls=1でも全てのdatを読み込んでから
処理をする、という無駄な処理を回避したい、というのがある。インデックスファイルは
基本的にかちゅ〜しゃ等の専用UAからはアクセスさせずに、read.cgiからのみ使用する
様にして、専用UAは>>289氏が提案したcgiを介して新規レスを取得するようにすれば
良いのではないか。
>>290
透明あぼ〜んは、問題だあ。datの各行の先頭(末尾でもいいや)に連番でも埋め込めな
いかなあ。dat取得時に検出できるように。
- 297 :デフォルトの名無しさん :01/08/27 15:54 ID:QCZ/pGb.
- 今は突貫工事が一段落着いたから
夜勤さん待ちって事ですか?
- 298 :名無しさん@揚げ足 :01/08/27 15:58 ID:2Ibh3ubo
- >>296
インデックスの件了解しましたマシン負荷の話だったのですね
ただ>>289氏のcgi案でもアボーンしたレスをUAが取り込めないのではないでしょうか?
- 299 :デフォルトの名無しさん :01/08/27 16:05 ID:plW.7Hb6
- >>298
UA内部に既に取り込んでしまったあぼ〜んを検出できないってのは
その通りだなあ。そこはユーザに自主的にツール内であぼ〜んして
もらうとか……ダメか。
- 300 :デフォルトの名無しさん :01/08/27 16:11 ID:CSUZ8fsE
- >>299
ad hoc な対策としては、どの記事があぼ〜んされたのかを知らせる cgi を
作るっていうのはあるかな?
- 301 :デフォルトの名無しさん :01/08/27 16:15 ID:plW.7Hb6
- 個人的には、いったん自分の掌中に入った情報を、
2chの勝手な都合でこちらまで消して欲しくない、
というのが本音なのだが(w
- 302 :194 :01/08/27 16:17 ID:0cm50H8s
- >>194 で書いたのはイメージ的にはこんな感じ 手抜きして書いたのでツッコミは勘弁(w
functionの定義なんかは別の.jsファイルにしておけば Last-Modifiedを吐いてくれれば
*.jsを何回もリロードすることはないと思うけど......
var firstNo = 100; // ページ内の最初の記事番号
function formatContent(string) {
// '\n'を"<br>"にしたり">>nnn"やURLをリンク化させたりする
}
function Articles_write(n) {
document.write("<dt>"+n+"名前:<font color=green><b>"+this.name+"</b></font>"
+"投稿日:"+this.date+" ID:"+this.id
+"<dd>"+formatContent(this.content)+"<br><br>\n");
}
function Articles(name, email, date, id, content) {
this.name = name;
this.email = email;
this.date = date;
this.id = id;
this.content = content;
}
Articles.prototype.write = Articles_write;
var articles = new Array(
new Articles("ななしさん", "", "01/08/27 15:30, "abcdef", "本文でーす"),
new Articles("ななしさん2", "", "01/08/27 15:35", "ghijk", "本文でーすよ"),
:
new Articles("ななしさんn", "", "01/08/27 15:55", "zyxwv", "本文でーすよん")
);
:
for (var i = 0; i < articles.length; i++) articles[i].write(firstNo+i);
- 303 :デフォルトの名無しさん :01/08/27 16:18 ID:kQSWx7uc
- 現在ツール側がやっているあぼーん検出をCGIにやらせるという案を
考えてみました。
・ツールはCGIから受け取ったログの長さを合算して、現在の取得サイ
ズを覚えておく。
・差分取得のときは、開始レス番号と終了レス番号に加えて現在の
取得サイズを一緒に渡す。
・CGI側で現在の取得サイズを調べ、現在の取得サイズの1バイト前が
改行でなかったらあぼーんが発生したとみなし、全レスを返す。
・現在の取得サイズはあぼーんの検出にのみ使い、あぼーんされてい
なかったら指定された範囲のレスを返す。
- 304 :デフォルトの名無しさん :01/08/27 16:37 ID:U3BzOc.o
- >>303
・CGI側で現在の取得サイズを調べ、現在の取得サイズの1バイト前が
改行でなかったらあぼーんが発生したとみなし、全レスを返す。
それだと偶然改行があるとミスするから、渡されたサイズと
一つ前の番号のレスが終了している場所が一致しているかど
うか、ぐらいはやってもいいんじゃないかな。
それでも偶然の一致の可能性は残るが。
- 305 :♯6411 :01/08/27 16:53 ID:Gdy5fRSM
- あぼーん問題。
あぼーん処理は、マーキングするだけにすれば、
.datは増えていくことはあっても縮んだりすることは
ないので、mmap()とかで処理がやりやすいんだけどねー。
もちろんあぼーんマーキングには、時刻(time_t)を
入れとくのです。
段階的にあぼーん処理を変更してくことって、
できないかしら?
- 306 :デフォルトの名無しさん :01/08/27 17:01 ID:qeolEtH2
- 個人情報なんかの理由であぼーんされるときには、
ログ上から完全に消す必要があるから、他で消す
ようにするのは不可能では?
むしろあぼーん情報を取得させて、専用ソフト側で
ローカルなログとのあぼーん同期処理をするとか。
- 307 :デフォルトの名無しさん :01/08/27 17:03 ID:plW.7Hb6
- >>305
あぼ〜ん処理を、「あぼ〜ん」と置き換えるのではなく、特定の文字、
それもキーボードから入力できない文字(たとえば0xffとか)で上書き
するってのはどうだろう?
そうすればdatは単調増加を保証する事が出来る。
- 308 :デフォルトの名無しさん :01/08/27 17:06 ID:plW.7Hb6
- あ、過去ログのあぼ〜ん検出は、考えてません。(藁
- 309 :デフォルトの名無しさん :01/08/27 17:08 ID:plW.7Hb6
- もういっちょ。自己レス
>上書きするってのはどうだろう?
同じ長さだけ、上書きって事ね。
- 310 :♯6411 :01/08/27 17:12 ID:Gdy5fRSM
- >>307 それでいいとおもう。
実際の改造手順としては。
0) あぼーん新仕様の提示、決定
1) read.cgiに新仕様を実装
2) あぼーんツール(?)を新仕様に従って改変
3) この時点で.datの半固定レコード化が決定される
4) ウマー
仕様に要求されるもの
・ログの保全。証拠隠滅のため、レコードを塗りつぶす必要蟻。
・消去した時刻を保管。L-Mを吐くために必要。time_tに準ずる情報で構わない。
272KB
新着レスの表示
スレッドリストへ戻る 全部 前100 次100 最新50
0ch BBS 2004-10-30