1 名前: ◆gfD86vH6Zo [03/07/04 23:32] 2ちゃんねる専用のブラウザを作っちゃおう というプロジェクトです。 [前スレ1より] Part 1 pc.2ch.net/test/read.cgi/tech/981726544/ Part 2 pc.2ch.net/test/read.cgi/tech/1005282763/ Part 3 pc3.2ch.net/test/read.cgi/tech/1012544484/ Part 4 pc2.2ch.net/test/read.cgi/tech/1042432238/ monazilla.org (w www.monazilla.org/
448 名前:stream ◆PNstream2s [2006/05/26(金) 18:51:22 BE:555033986-#] >>447 datファイルは特に規制かけてないみたいなので HTTPの仕様に沿った要求を行えば特に問題ないですね。 ただ、さまざまな理由で規制がかけられないとは限らないんで User-Agent はMonazillaを名乗っておいたほうがよさげ。 さすがに Accept-Encoding: gzip 無しが規制されるとは思えないけど、 C#って.NET2.0なら自動でgzipを展開してくれる機能があるから それを利用して2chの負担を減らそう。 ちなみに offraw.cgi はgzip必須だったような。 read.cgi はUser-Agent必須だったような。
449 名前:447 mailto:sage [2006/05/26(金) 19:02:37 ] >>448 ご指摘ありがとうございます。 > C#って.NET2.0なら自動でgzipを展開してくれる機能があるから > それを利用して2chの負担を減らそう。 C#でgzipの圧縮・解凍ができるとは知りませんでした(汗 早速調べてみます。 ところでgzipを使ったときもログの差分取得は可能でしょうか? そもそもgzipを使ってログを圧縮しているなら、わざわざ差分取得しなくても 鯖には大した負担はかからないでしょうか?
450 名前:デフォルトの名無しさん mailto:sage [2006/05/26(金) 19:10:24 ] 今gzip圧縮ってしてるの? 転送量よりもCPU負荷の方を軽減したいって感じだったと思うけどうるおぼえ。
451 名前:デフォルトの名無しさん mailto:sage [2006/05/26(金) 19:44:35 ] Content-RangeとAccept-Encoding:gzipを同時に指定すると、 httpの意味上からは、「gzip済みのdatファイル」の途中から しか送ってくれないので役に立たない。
452 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 00:43:57 ] >>450 うろおぼえ が正しいんじゃなかったか? >>451 初回だけgzipで取れって事?
453 名前:447 mailto:sage [2006/05/27(土) 00:54:09 ] >>451 その差分に関して何ですが、 ttp://age.s22.xrea.com/talk2ch/#get によりますと、 DAT差分を取得 要求ヘッダに次の項目を追加する If-Modified-Since: リモートDATの最終更新時刻(値は応答ヘッダのLast-Modifiedを調べる) Range: bytes=ローカルDATのファイルサイズ- ※If-Modified-SinceとDateヘッダの値は、RFC1123形式で表される時刻。例えば、Fri, 30 Mar 2001 22:35:45 +0900 とのことです。そこで次のようなプログラムを記述したのですが、 System.Net.WebClient wc = new System.Net.WebClient(); wc.Headers.Add("User-Agent", "Monazilla/1.00 (mytool/1.00)"); wc.Headers.Add("If-Modified-Since", "Fri, 26 May 2006 10:44:35 +0900"); System.IO.Stream st = wc.OpenRead("pc8.2ch.net/tech/dat/1057329161.dat "); System.Text.Encoding enc = System.Text.Encoding.GetEncoding("Shift_JIS"); System.IO.StreamReader sr = new System.IO.StreamReader(st, enc); string html = sr.ReadToEnd(); sr.Close(); st.Close(); Console.WriteLine(html); なぜか実行しようとするとエラーが発生してしまいます。そこで wc.Headers.Add("If-Modified-Since", "Fri, 26 May 2006 10:44:35 +0900"); のところをコメントアウトすると問題なく実行してログを取得してくれます。 差分取得するときの要求ヘッダの与え方に何か間違い等はありますか(´・ω・`)?
454 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 01:07:51 ] HTTP-date = rfc1123-date | rfc850-date | asctime-date rfc1123-date = wkday "," SP date1 SP time SP "GMT" rfc850-date = weekday "," SP date2 SP time SP "GMT" asctime-date = wkday SP date3 SP time SP 4DIGIT date1 = 2DIGIT SP month SP 4DIGIT ; day month year (e.g., 02 Jun 1982) date2 = 2DIGIT "-" month "-" 2DIGIT ; day-month-year (e.g., 02-Jun-82) date3 = month SP ( 2DIGIT | ( SP 1DIGIT )) ; month day (e.g., Jun 2) time = 2DIGIT ":" 2DIGIT ":" 2DIGIT ; 00:00:00 - 23:59:59 wkday = "Mon" | "Tue" | "Wed" | "Thu" | "Fri" | "Sat" | "Sun" weekday = "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday" | "Sunday" month = "Jan" | "Feb" | "Mar" | "Apr" | "May" | "Jun" | "Jul" | "Aug" | "Sep" | "Oct" | "Nov" | "Dec"
455 名前:stream ◆PNstream2s [2006/05/27(土) 02:00:12 ] >>450 ほとんどの鯖でgzip圧縮してるよ >>453 おかしいですねえ。 Headers プロパティは、WebClient が要求で送信するヘッダー情報を含む WebHeaderCollection インスタンスを格納します。これは無制限のヘッダーのコレクションであるため、HttpWebRequest などの WebRequest の子孫で制限されるヘッダーを設定できます。 と書いてあるんですけど、例えばRangeヘッダーでも同じことが起こります。これは.NET Frameworkのバグな気がします。
456 名前:447 mailto:sage [2006/05/27(土) 02:03:05 ] >>455 > おかしいですねえ。 > Headers プロパティは、WebClient が要求で送信するヘッダー情報を含む WebHeaderCollection インスタンスを格納します。これは無制限のヘッダーのコレクションであるため、HttpWebRequest などの WebRequest の子孫で制限されるヘッダーを設定できます。 > と書いてあるんですけど、例えばRangeヘッダーでも同じことが起こります。これは.NET Frameworkのバグな気がします。 そんなことがあるんですか(;´Д`)・・・
457 名前:stream ◆PNstream2s [2006/05/27(土) 11:18:07 ] まあ、HttpWebRequest/HttpWebResponseを使えってことなんですかねえ。 If-Modified-Since にDateTime構造体を突っ込むことが出来たりするので ちょっと手の込んだHTTPリクエストを行う場合はWebClientより便利だと思いますよ。
458 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 11:25:52 ] etag保存しといてif-none-matchを仕掛けた方がいいという話もある
459 名前:stream ◆PNstream2s [2006/05/27(土) 16:31:16 ] 新しい書き込みの仕様 レス FROM= ←名前 mail= ←メール欄 MESSAGE= ←本文 bbs= ←板のディレクトリ名。operateとかtechとか time= ←現在時刻より小さい値を適当に。1を送っておけばよい key= ←スレッドキー hana=mogera ←追加。常にmogeraを送っとけばいいのかな。 Cookieは不要。
460 名前:stream ◆PNstream2s mailto:sage [2006/05/27(土) 16:35:43 ] スレ立て subject= ←スレッドのタイトル FROM= ←名前 mail= ←メール欄 MESSAGE= ←本文 bbs= ←板のディレクトリ名。operateとかtechとか time= ←現在時刻より小さい値を適当に。1を送っておけばよい hana=mogera ←追加。常にmogeraを送っとけばいいのかな。
461 名前:stream ◆PNstream2s mailto:sage [2006/05/27(土) 16:36:37 ] Cookieは不要と書きましたが、sports2はCookie無しじゃ書けないので Cookieも今までどおり必要ですね
462 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 17:28:01 ] >>453 >wc.Headers.Add("If-Modified-Since", "Fri, 26 May 2006 10:44:35 +0900"); RFC 2616 Hypertext Transfer Protocol -- HTTP/1.1 3.3 Date/Time Formats 3.3.1 Full Date All HTTP date/time stamps MUST be represented in Greenwich Mean Time (GMT), without exception.
463 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 17:33:44 ] クッキー認証、クッキーの必要なサーバーなら出る sports鯖とかsports2.2ch.net/wc/ pc8.2ch.net/test/read.cgi/tech/1057329161/ 459 :stream ◆PNstream2s :2006/05/27(土) 16:31:16 新しい書き込みの仕様 レス FROM= ←名前 mail= ←メール欄 MESSAGE= ←本文 bbs= ←板のディレクトリ名。operateとかtechとか time= ←現在時刻より小さい値を適当に。1を送っておけばよい key= ←スレッドキー hana=mogera ←追加。常にmogeraを送っとけばいいのかな。 Cookieは不要。 460 :stream ◆PNstream2s :2006/05/27(土) 16:35:43 スレ立て subject= ←スレッドのタイトル FROM= ←名前 mail= ←メール欄 MESSAGE= ←本文 bbs= ←板のディレクトリ名。operateとかtechとか time= ←現在時刻より小さい値を適当に。1を送っておけばよい hana=mogera ←追加。常にmogeraを送っとけばいいのかな。 461 :stream ◆PNstream2s :2006/05/27(土) 16:36:37 Cookieは不要と書きましたが、sports2はCookie無しじゃ書けないので Cookieも今までどおり必要ですね
464 名前:447 mailto:sage [2006/05/27(土) 17:36:55 ] >>462 > >wc.Headers.Add("If-Modified-Since", "Fri, 26 May 2006 10:44:35 +0900"); > RFC 2616 Hypertext Transfer Protocol -- HTTP/1.1 > 3.3 Date/Time Formats > 3.3.1 Full Date > All HTTP date/time stamps MUST be represented in Greenwich Mean Time > (GMT), without exception. wc.Headers.Add("If-Modified-Since", "Fri, 26 May 2006 10:44:35 GMT"); のようにGMTに変えてみましたが依然エラーが返されるようです。 もしかしたら"If-Modified-Since"の部分が間違っているんでしょうか?
465 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 17:38:27 ] すまん、誤爆した
466 名前:447 mailto:sage [2006/05/27(土) 17:56:43 ] >>457 HttpWebResponse/HttpWebRequestを使ってみましたが↓ やはり"If-Modified-Since"のヘッダー情報を追加すると エラーが生じますね・・・ .Netのバグではないような気もします・・・ //HttpWebRequestの作成 System.Net.HttpWebRequest webreq = (System.Net.HttpWebRequest) System.Net.WebRequest.Create("pc8.2ch.net/tech/dat/1057329161.dat "); //サーバーからの応答を受信するためのHttpWebResponseを取得 System.Net.HttpWebResponse webres = (System.Net.HttpWebResponse) webreq.GetResponse(); webres.Headers.Add("User-Agent", "Monazilla/1.00 (mytool/1.00)"); webres.Headers.Add("If-Modified-Since", "Fri, 26 May 2006 10:44:35 +0900"); System.Text.Encoding enc = System.Text.Encoding.GetEncoding("shift-jis"); //応答データを受信するためのStreamを取得 System.IO.Stream st = webres.GetResponseStream(); System.IO.StreamReader sr = new System.IO.StreamReader(st, enc); //受信して表示 string html = sr.ReadToEnd(); Console.WriteLine(html); //閉じる sr.Close();
467 名前:stream ◆PNstream2s mailto:sage [2006/05/27(土) 18:33:23 ] >>466 いや、HttpWebRequest/HttpWebResponseの場合はHeaders.Add("If-Modified-Since",○○) ってやっちゃ駄目なのは仕様。IfModifiedSinceプロパティを使う。 んでWebClientはHeaders.Add("If-Modified-Since",○○)ってやっていいはずなんだけど 実際は出来ないからバグかもしれない、ってことです。
468 名前:447 mailto:sage [2006/05/27(土) 19:03:48 ] >>467 あ、そういうことでしたか。早速IfModifiedSinceプロパティを使わせていただきました。 System.Net.HttpWebRequest webreq = (System.Net.HttpWebRequest) System.Net.WebRequest.Create("pc8.2ch.net/tech/dat/1057329161.dat "); webreq.IfModifiedSince = new DateTime(2006, 5, 26, 0, 0, 0); System.Net.HttpWebResponse webres = (System.Net.HttpWebResponse) webreq.GetResponse(); System.Text.Encoding enc = System.Text.Encoding.GetEncoding("shift-jis"); System.IO.Stream st = webres.GetResponseStream(); System.IO.StreamReader sr = new System.IO.StreamReader(st, enc); string html = sr.ReadToEnd(); Console.WriteLine(html); sr.Close(); コンパイルも通り、問題なく実行もできました。 が、なぜか差分データが取得できませんね・・・ 2006年5月26日移行に書き込まれたデータを取得しようとしたんですが全データが 取得されてしまうようです・・・ 関係ない話ですが、もし可能ならレス番号を指定してそれ移行のデータを要求できれば 便利そうなんですが2ちゃんではそういうものには対応していないんですかね。
469 名前:デフォルトの名無しさん [2006/05/27(土) 20:45:54 ] すごい惨めな気持ちになったぞ! どうしてくれる!
470 名前:stream ◆PNstream2s mailto:sage [2006/05/27(土) 20:51:15 ] >>468 If-Modified-Since ヘッダって言うのは「この時間よりあとに未更新だったら送信しないでね」って意味だから 差分データを取得するにはさらに Range ヘッダを使わなければいけない。 HttpWebRequestの場合はAddRangeメソッドを使う。
471 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 20:52:26 ] >>468 > Range: bytes=ローカルDATのファイルサイズ- はどこ行ったんだよ
472 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 20:52:46 ] かぶったorz
473 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 21:44:28 ] >>468 >関係ない話ですが、もし可能ならレス番号を指定してそれ移行のデータを要求できれば >便利そうなんですが2ちゃんではそういうものには対応していないんですかね。 2000年8月危機の際にオープンソースとなり有志の手で改良された旧版 read.cgi には raw モードとしてその機能が実装されたが、現在の read.cgi には実装されてない。
474 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 21:55:15 ] 2001年ではなくて?
475 名前:447 mailto:sage [2006/05/27(土) 22:18:47 ] >>470-471 webreq.AddRange((int) fileSize); と指定することで差分データ取得できました\(^o^)/ ちなみにIf-Modified-Sinceヘッダをつけてもつけなくても、 またでたらめな時間や未来の時間にしても取得する差分データ に変わりはありません。AddRangeさえ指定すればIf-Modified-Sinceは 特に指定する必要は無いんでしょうか? >>473 便利な機能は無くなってしまったんですか(´・ω・`) あぼ〜んがあった場合などでも問題なく差分データを取得できると 思われるので重宝すると思うんですが・・・
476 名前:デフォルトの名無しさん mailto:sage [2006/05/27(土) 22:23:43 ] 鯖の方でいろいろやらなきゃいけないし、 FOXがコードをDSO向けにリファインした時に無くした予感
477 名前:デフォルトの名無しさん mailto:sage [2006/05/28(日) 00:27:05 ] ハナモゲラ絶対必要なの?
478 名前:デフォルトの名無しさん mailto:sage [2006/05/28(日) 06:48:32 ] あぼーんがあったときに、ローカルのデータを上書きしてくれるのでありがたい
479 名前:デフォルトの名無しさん mailto:sage [2006/05/28(日) 13:48:42 ] 例えばレス479まで取得しているスレでリロードすると、 479までのサイズでRange〜とするわけだけど、その時に 新規投稿が無かった場合、.datファイルにはRange〜で指定した 部分は存在しないので406エラーとなる。 そこで、If-Modified-Sinceを付ければ、新規投稿が無い時には 304 Not Modified で新規投稿が無いことがわかる。 406を新規投稿無しと解釈すれば良いじゃないか、とも思えるが、 レスが削除された場合等にも、.datファイルのサイズが既得分より 減って406が出うるので、それと区別ができなくなってしまう。 ブラウザを配布するとかではなくて、個人でどうにかしたいだけなら お好みでどうぞ、とも言えるが。
480 名前:447 mailto:sage [2006/05/28(日) 15:51:01 ] >>479 なるほど、If-Modified-Sinceを活用するとあぼーんの検知もできるようになるということですね。 ちなみに先ほど各種条件を試してみましたところ、 新規投稿がなく、If-Modified-Sinceを指定しなかった場合 416 RequestedRangeNotSatisfiable が返され、 新規投稿が無く、If-Modified-Sinceを指定した場合は 304 Not Modified が返されました。 あぼ〜んがあったと想定するためRange〜を100バイトほど多めに指定し、 If-Modified-Sinceの時刻を過去に戻したところ(あぼーん更新で更新時刻が先に変更されたとシミュレートするため) 416 RequestedRangeNotSatisfiable が返されました。 細かい違いはありますが、 416が返された場合はあぼ〜んがあったと推測し、全ログを取得し直すようにすればいいわけですね?
481 名前:デフォルトの名無しさん mailto:sage [2006/05/28(日) 16:18:35 ] あ、416だった(ハズイ
482 名前:デフォルトの名無しさん mailto:sage [2006/05/28(日) 16:26:38 ] そっすね、全取得になるかと。 ブラウザとしてだと、自動再取得の前に、何が削除されたか 知っておきたい、という需要もあるけどね。
483 名前:デフォルトの名無しさん mailto:sage [2006/05/28(日) 16:32:30 ] Range指定にIf-Modified-Sinceを付加する理由として ひとつは、HTTP/1.1の旧仕様では416が規定されておらず Rangeが範囲外を指定しているとRangeを無視して200を返していたというのがある。 少なくとも、このスレの初代が出来た頃の2chのapache(1.x)はそうだったし 互換板等ではまだそういう鯖も存在するかもしれない。 もうひとつは、 あぼーん検出のために末尾の'\n'等数バイトを含めてRange指定で取得すると 未更新の場合でもファイルの読み書きが発生して 鯖に本来不要な負荷をかけてしまうという点がある。 If-Modified-Sinceを併用することで、これを防ぐ。
484 名前:447 mailto:sage [2006/05/29(月) 19:29:37 ] 2ちゃんのスレッドを取得したときに考えられるケースとして、 a) 正常に取得 b) URLを間違えてしまった c) すでに1000を超えていた d) すでに過去ログとして倉庫落ちしてしまった e) 人大杉 の5通りくらいあるかと思います。いずれも帰ってくるステータスコードは 200 HTTP_OKなんですがみなさんどうやってそれぞれのケースを判別されてますか?
485 名前:デフォルトの名無しさん mailto:sage [2006/05/29(月) 20:25:21 ] それは、 本当は302が返っているのに、リダイレクトされているだけ
486 名前:デフォルトの名無しさん mailto:sage [2006/05/31(水) 23:54:51 ] c)は違うだろ(まだdat落ちしてなければ)
487 名前:stream ◆PNstream2s mailto:sage [2006/06/01(木) 08:21:08 ] >>484 b) AllowAutoRedirect = false datファイルが302 Found が返ってくるかどうか。 d)と比べたいならread.cgiにもアクセスする。 c) datファイルが1000行あるか調べる d) AllowAutoRedirect = false datファイルが302 Found が返ってくるかどうか。 b)と比べたいならread.cgiにもアクセスする。 e) datファイルで人大杉?
488 名前:デフォルトの名無しさん mailto:sage [2006/06/03(土) 19:46:04 ] ttp://jbbs.livedoor.jp/bbs/read.cgi/computer/26999/1149328392/ したらばのdatってどう取得したらええんやろ(´・ω・`)?
489 名前:stream ◆PNstream2s mailto:sage [2006/06/03(土) 20:17:03 ] ProxomitronとかEtherealとかつかって、既存の2chブラウザが何やっているかを把握すべし
490 名前:デフォルトの名無しさん mailto:sage [2006/06/03(土) 22:35:17 ] >>488 > ttp://jbbs.livedoor.jp/bbs/read.cgi/computer/26999/1149328392/ んなもん ttp://jbbs.livedoor.jp/computer/dat/26999/1149328392.dat とでもすればいいんじゃね〜か、と思っていたが意外と違うもんだな・・・
491 名前:stream ◆PNstream2s mailto:sage [2006/06/03(土) 22:44:03 ] Jane Nida で確認してみた ttp://jbbs.livedoor.jp/bbs/rawmode.cgi/computer/26999/1149328392/ レス番指定も ttp://jbbs.livedoor.jp/bbs/rawmode.cgi/computer/26999/1149328392/10-20
492 名前:デフォルトの名無しさん mailto:sage [2006/06/04(日) 01:29:32 ] >>491 > レス番指定も > ttp://jbbs.livedoor.jp/bbs/rawmode.cgi/computer/26999/1149328392/10-20 うおっ!めちゃくちゃ便利じゃん♪ 2ちゃんもしたらばみたいな方式だとありがたいんだが。
493 名前:stream ◆PNstream2s mailto:sage [2006/06/04(日) 01:32:26 ] >>492 CGIが動く負荷とdatファイルを読み出す負荷は10〜100倍ぐらい違うんだよ
494 名前:デフォルトの名無しさん mailto:sage [2006/06/04(日) 01:40:46 ] >>493 なるほど、2ちゃん規模の掲示板だと2ちゃん方式は必要悪というわけなのか。
495 名前:デフォルトの名無しさん mailto:sage [2006/06/04(日) 03:05:00 ] 因みに過去ログは jbbs.shitaraba.com/bbs/read.cgi/computer/10298/1071738986/ ↓ jbbs.livedoor.jp/computer/10298/storage/1071738986.html htmを自前でDatに変換ね
496 名前:デフォルトの名無しさん mailto:sage [2006/06/04(日) 06:31:07 ] したらばはdat公開してないよ IPとかもdatに保存してあるから
497 名前:デフォルトの名無しさん mailto:sage [2006/06/04(日) 15:09:36 ] > IPとかもdatに保存してあるから ((((((;゚Д゚))))))ガクガクブルブル
498 名前:デフォルトの名無しさん mailto:sage [2006/06/05(月) 00:08:49 ] そんなに怖がることはないだろ
499 名前:デフォルトの名無しさん mailto:sage [2006/06/06(火) 23:37:48 ] >>463 いまはsubmitってチェックしてないのかな? 間違えて「書き込む」をUTF-8でエンコードしてたけど書き込めてた。 >>455 GET /newsplus/subject.txt HTTP/1.0 Accept-Encoding: gzip Host: news2.2ch.net User-Agent: Monazilla/1.00 Connection: close と、「と〜く2ちゃんねる」通りにリクエストしても datファイルはプレーンテキストで送られてくるのですが、 どの鯖ならgzipで返ってくるんだろう。 リクエストの仕方が間違ってる? おかげで、gzipでdatを受信した場合の動作確認ができない。 普通の応答は解凍できてるから、たぶん大丈夫だとは思うんだけど・・・。
500 名前:デフォルトの名無しさん mailto:sage [2006/06/07(水) 03:05:38 ] HTTP/1.1?
501 名前:デフォルトの名無しさん mailto:sage [2006/06/07(水) 03:11:40 ] news2?
502 名前:stream ◆PNstream2s mailto:sage [2006/06/07(水) 14:37:34 ] telnetしてみた GET /newsplus/subject.txt HTTP/1.0 Host: news2.2ch.net Accept-Encoding: gzip HTTP/1.1 200 OK Date: Wed, 07 Jun 2006 05:36:10 GMT Server: Apache/2.0.58 Last-Modified: Wed, 22 Mar 2006 02:11:13 GMT ETag: "16310f0-0-40f8be7f05240" Accept-Ranges: bytes Vary: Accept-Encoding Content-Encoding: gzip ← Content-Length: 20 Connection: close Content-Type: text/plain; charset=shift_jis ただ単に中身が無いからgzipになってないように見えるだけでは?
503 名前:499 mailto:sage [2006/06/09(金) 03:18:20 ] >>499 はと〜く2ちゃんねるのをコピペしただけなので、 実際には運営情報板とかでテストしてます。 >>502 おお、telnetで試してみたらgzipで返ってきました。 でも、全く同じメッセージ送ってみてもWinsock(2.0)使った 自作プログラムではプレーンテキストが返ってくる。 う〜ん、何が違うんだろう。
504 名前:デフォルトの名無しさん mailto:sage [2006/06/21(水) 16:52:14 ] > User-Agent: Monazilla/1.00 ヘッダーにこの情報を記述しなくてもDATが取得できたんだけど これっておまじない程度のものなの?
505 名前:デフォルトの名無しさん mailto:sage [2006/06/22(木) 04:40:05 ] 過去ログにさんざん書かれてますよ。
506 名前:デフォルトの名無しさん mailto:sage [2006/06/22(木) 10:13:56 ] おなじないって言ってるうちは理解できてないってことだな
507 名前:デフォルトの名無しさん mailto:sage [2006/06/22(木) 11:53:35 ] おなじない・・・・
508 名前:デフォルトの名無しさん mailto:sage [2006/06/22(木) 12:46:30 ] おなじないヽ(`Д´)ノウワァァン
509 名前:デフォルトの名無しさん mailto:sage [2006/06/22(木) 13:20:14 ] かくごしろ
510 名前:504 mailto:sage [2006/06/27(火) 22:58:57 ] う〜ん・・・ 特にいらないのか( ´・ω・)・・・
511 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 01:52:17 ] そういえば、NISかなんかがgzipを無効にするとかいうのもあったっけなー。
512 名前:デフォルトの名無しさん [2006/07/01(土) 20:29:40 ] Delphi6+Indyで簡易2chブラウザを作っています。 読み、書きはできるようになりましたが、●が書き込みに反映されません。 ちなみに認証方法はttp://kage.monazilla.org/system_DOLIB100.htmlを参考にして、 セッションIDを取得するところまではできています。 ・セッションIDの取り出し IdHTTP1.AllowCookies := False; IdHTTP1.Request.UserAgent := 'DOLIB/1.00'; IdHTTP1.Request.RawHeaders.Add('X-2ch-UA:'+Myname); IdHTTP1.Request.Connection := 'close'; Contents.Text:='ID='+LGId+'&PW='+LGPas; Respons:=IdHTTP1.Post(url, Contents); Sid := Copy(Respons,pos('=',Respons)+1,length(Respons)); //showmessage(Respons);で'SESSION-ID=Monazilla/1.00:〜〜〜'という文字列が表示されます。 //showmessage(Sid);では'Monazilla/1.00:〜〜〜' //一番最後の文字は非改行文字であることを確認>>95 ・書き込み時postするデータ IdHTTP1.Request.Referer := SavUrl+ItaUrl; IdHTTP1.Request.UserAgent := copy(Sid,1,pos(':',Sid)-1) +' ('+Myname+')'; Contents.Text:='bbs='+Ita+'&key='+Key+'&sid='+Sid +'&time=1&hana=mogera&submit=書き込む&FROM=' +Name+'&mail='+Mail+'&MESSAGE='+Honbun; Result:=IdHTTP1.Post(url, Contents); 書き込み自体はこれで成功しています。
513 名前:デフォルトの名無しさん mailto:sage [2006/07/01(土) 20:44:20 ] Indyのことはわからないから的外れな事いってたら悪いんだけど URLエンコードはされてる?
514 名前:512 mailto:sage [2006/07/01(土) 21:15:02 ] すみません。>>95 を見て Sid := Copy(Respons,pos('=',Respons)+1,length(Respons)); ↓ tmp1 := pos('=',Respons)+1; Sid := Copy(Respons,tmp1,length(Respons)-tmp1); に変えたのを忘れていました。それでも症状は変わらずです。 >>513 indyの内部で行われているようです。 名前欄の●が○になる以外で書き込んだ内容は正常に反映されていますし。
515 名前:デフォルトの名無しさん mailto:sage [2006/07/01(土) 22:35:13 ] 確かSID末尾の改行がどうのというところで引っかかっていた人が過去に居たような。
516 名前:デフォルトの名無しさん mailto:sage [2006/07/01(土) 23:53:56 ] >>512 >>514 Proxomitronとか、あるいはetherealを使って 流れているデータを見るのが解決の近道
517 名前:512 mailto:sage [2006/07/02(日) 04:16:31 ] で、でけたー Indyのエンコード部分がいろいろとおかしいようなので封印して自前でURLエンコードしたら反映されました >>513 >>515 大変参考になりました。ありがとうございます。
518 名前:デフォルトの名無しさん mailto:sage [2006/08/10(木) 20:05:03 ] ひどい過疎
519 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 23:49:35 ] 見舞われましたwwwwwwwwwwwwwwwwwwwwww
520 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 17:04:57 ] IEコンポーネントはVistaでも正常動作するか確認情報ってある? 使ってる人は少なくないと思うがそれらしい話を全く聞かないもんで
521 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 15:14:42 ] monazilla.org ってどうして更新されなくなってしまったの?
522 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 01:33:58 ] read.cgi 2006―JavaScriptはCGIの夢を見るか qb5.2ch.net/test/read.cgi/operate/1153819270/749- まだまだ実験中のやつだけど、ステータスコードが色々ですよ。 302しか想定してないブラが多かったと思うけど、404くらいには対応した方が この先も色々慌てなくて良いかもよ。
523 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 22:27:23 ] ステータスが 302 Found → 302 Moved Temporarily になっただけでまともに動かなくなったブラウザもあったぐらいだし 2chブラウザ作者は少しはHTTPを知っててほしい
524 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 13:51:50 ] 実装が面倒
525 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 20:58:22 ] 2ch専用なのにHTTPに準拠する必要はない 速度やサイズや生産性が悪化するだけ
526 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 21:57:59 ] あとリロードのたびに1バイト読み取るバカ2chブラウザは何とかならないのかね
527 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 01:14:42 ] >>525 そんな糞プログラムが氾濫してるのか 知らなかった
528 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 04:35:13 ] 2chという糞に合わせなきゃならんからな。 現実はたいへんなのよ。夢だけ語ってたら2chやれませんw
529 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 13:38:47 ] 2chといえどもhttpの上に成り立ってるんじゃないのか
530 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 13:42:22 ] ただ人大杉とかdat落ちしたとかのエラーは独自だからね。 フォーマットも統一されてないし。
531 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 17:05:45 ] >>529 それがどうかしたかね。
532 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 20:25:29 ] >>529 少なくとも昔は違った 今は知らん
533 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 20:30:30 ] >>532 デマ流すな で、普通の「まっとうな」2chブラウザは、 2chだけでなく、外部の実況板等の互換板にちゃんと対応している。 それは当然、httpに則っているということ。 もちろん302ではなく404を返すようになっても全然問題ない。 「httpに準拠しなくて良い」なんて書いてるのは まともな2chブラウザを作ろうとしたことも無い奴のたわごとだから。
534 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 20:39:54 ] wikipediaより >準拠(じゅんきょ)とは、合致はしていないが、概ね(準)よりどころとしている事(拠)。 そういうことなら同意するよ
535 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 21:13:46 ] あんた、おふらうって知ってるかい?
536 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 21:18:45 ] 2chがさくらとかのレン鯖(と一部ひろゆき自宅)で運営されていた時代を知らないで 「昔」を語られても困るわけですが、 レン鯖がhttp以外で運用されていたとでも思っているのですかね。 まさかhttpとHTMLを混同するわけないし。
537 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 21:22:39 ] 独り言をこんなところに貼られても困る
538 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 21:28:54 ] まあ、まともな人はちゃんと作ってるから問題ないしね。 まともじゃない人が適当なこと(httpじゃないとか昔は違ったとか)言ってるだけだから。
539 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 22:56:53 ] httpじゃないというのならdatはどうやって取得しているのか知りたいものだな。。。
540 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 23:05:00 ] 話が食い違ってるな HTTPをちゃんと実装することと HTTPを利用してることは全然違うぞ
541 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 23:36:42 ] 2chがHTTPをちゃんと実装してるかって話? そりゃ、そんなわけないだろ。 2chはapacheを使っているだけで、 httpを実装しているのはapache.orgなんだから。 「2chはhttpじゃない」「昔は違った」なんて話は どう見ても「クライアント側がhttpをちゃんと処理しているか」とは なんの関係も無いし。
542 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 13:07:11 ] おまいらどう見てもhttpとHTML誤記した>>525 に食いつきすぎですw
543 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 13:15:36 ] >>523 Live2chか 今は知らんが、あのブラウザは当時 >「302 Moved Tem,prarily」でもdat落ちと判断するようにした って対応して、rootが「数字だけで判断するべきかと・・・」ってあきれてた
544 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 16:18:07 ] >>542 なんだってー
545 名前:デフォルトの名無しさん mailto:sage [2006/09/02(土) 16:24:14 ] >>542 水さすんじゃねーw
546 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 08:25:08 ] BBSPINKのフォルダ分けってどうやればいいの?
547 名前:デフォルトの名無しさん mailto:sage [2006/09/07(木) 12:28:43 ] そういえばソフトウェア板のブラウザ比較スレで新ブラウザあがってたな
548 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 19:41:52 ] 再開だそうです。 monazilla.org/blogn/index.php