再びAsyncWeb

Httpサーバを実装するなら、難しいのは、PipeLine処理ともう一つ、プロトコルパーサなのは間違い無い筈なので、そっちを追いかけてみます。


AsyncWebでは、DecodingStateと言うinterfaceを頂点とする継承階層を持つクラス群が、
くるくる回ってHTTPリクエストをパースする様です。
名前の通りの動作をします。StateMachineがサブクラスに居て、状態が次々と遷移して行きます。
スバラシイ。超勉強になる。


所で…、HTTP Bodyをパースしている様に見えないのは、僕の目が腐っているからなのかなぁ…。
HTTPヘッダから、content-lengthとって、スコーンとByteBufferContentなんぞに
振り替えているだけにしか見えん…。
Chunkにも対応しているし、必要な事は揃っている筈なんだけど、何故に?…。
あー、HTTP Bodyは自前でパースしろ…と、そうですか。
ファイルアップロードとかそういうのも視野に入れて実装すんのメンドイですか、そうですか。


後、HttpヘッダのValueをパースする時と、
HTTPリクエスURIのパラメータ部分をパースする時のエンコーディング指定が、
UTF-8固定なのは、仕様ですか…そうですか。


ProtocolCodecFactory自前実装すれって事ですか、ナルホド。