高橋征義です。

"NAKAMURA, Hiroshi" <nakahiro / sarion.co.jp>さん:
> わざわざ振り直して頂いたのに,お返事が遅くてすいません.^^;

いえいえ、こちらこそ(^^;

> > ・やっぱ並行でエージェントとばしたい。
> > (結構時間がかかる。遅い時だと現在49ドメインで3分くらいかかったりする。
> >  HEADリクエストだけなのに)
> 
> ネットワークへの負荷を考えると,どのくらい平行に動かすのが
> 最適なのかは,悩みどころですよね.

うーん、HEADだけしか飛ばさないのと、プロセスは1個ですませる
ということなので、ばしばし並行させたい、という欲望はあるの
ですが(^^;

> 約170ドキュメントの更新時間チェックに,平均90秒くらいです.
> 単純に6倍すると...9分ですか.

なるほど。似たようなものでしょうか。

> > ・同じホストへのリクエストは一回の接続でまとめて取得するべき。
> 
> そう思います.HTTP/1.1で接続しておきながら
> 毎度セッションを張り直すのは,非常にかっこわるいです.

ですよね〜。というか、そうでなければ別にHTTP/1.1にこだわる必要も
ほとんどないわけで。

> えーと,KNClientは,それを目指して作り始めたものの,
> Persistent Connectionsには対応してません.

げ、そうだったんですか?
# ソースちゃんと読んでないのがばればれですね(^^;;

> さらに言えば,KNClientは,複数行にまたがるHTTPヘッダにも
> 対応してません(http-accessは対応してます).

そうだったんですね。なるほど。

> というわけで,現時点では,
> http-accessを(必要なら)修正して使うのがベストだと思います.

分かりました。http-accessにしてみます。
# でもKNClientも期待してます(^^)

> > 最初はhttp-accessを使ってみたのですが、どうもコネクションを張った
> > ままrequestするのがうまくいきませんでした(毎回closeしてopenしなおせば
> > OKでした)。
> 
> 以前のスレッドをちゃんと追いかけてなかったのですが,
> どういう現象なんでしょうか.

これ、いろいろいじったら、原因がすこし分かりました。
HTTP/1.0なサーバに対して失敗するようです。

http-accessでは、request_head などを実行すると、@statusが
INITであればあらためてconnectするのですが、今のところ
closeしなければINITになりません。

なので、request_headを何度か送ろうとすると、一度目はいいんですが、
二度目はconnectをやり直しません。HTTP/1.1対応のサーバに対しては
それで構わないのですが、HTTP/1.0のサーバはKeep-Aliveできないので、
失敗してしまいます。どうしたものか。

# まあ、状態遷移をちゃんと把握してないのが敗因なのですが。

> Keep-Alive対応を考えていたんですが,
> ちょっとあのままでは具合が悪いことに気づき,
> 一から設計し直したりしてました.
> 現在作成中のモノでは,
(略)
> なんて呼び出せるようになるといいなぁ,なんて夢想してます.

おお。すごそうですね。頑張ってください(^^)

> 「いやまぁ既に動いてるものもあるし」なんて弱気.^^;

そんなこと言わずに(^^;;

高橋征義 (TAKAHASHI Masayoshi)       Email:maki / inac.co.jp