Ruby/AJP開発記(1)

net/http互換と言うのはあんまり良い設計でないことが段々分かってきた。

簡単に使用できるように互換インターフェースは作っておくにしても、一番プリミティブなモデルをnet/httpと同じような構成にしてしまうと、利用できる局面を限定してしまう。

AJPがstatefulなプロトコルであることが大きいか。究極的にはHTTPの圧縮転送に過ぎないのだから転送中に生じるstateを全部覆い隠してstatelessにできるかとおもったけれど、でも、そうしてしまうと実装が汚いし、stateに依存する機能を外部から使用するときにえらく苦労する。

むしろ、org.apache.commons.httpclientのほうが参考になるかも。